黑马程序员技术交流社区
标题:
这道题不会,写了很久,感觉代码很怂?
[打印本页]
作者:
myzhang
时间:
2014-9-12 12:12
标题:
这道题不会,写了很久,感觉代码很怂?
需求:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
作者:
myzhang
时间:
2014-9-12 12:14
public class Main {
private double TotalHeight = 100;
private double CurHeight = 50;
public void drop(int times) {
if ((times - 1) == 0) {
return;
}
setTotalHeight(getTotalHeight() + 2 * getCurHeight());
setCurHeight(getCurHeight() / 2);
drop(times - 1);
}
public double getTotalHeight() {
return TotalHeight;
}
public void setTotalHeight(double totalHeight) {
TotalHeight = totalHeight;
}
public double getCurHeight() {
return CurHeight;
}
public void setCurHeight(double curHeight) {
CurHeight = curHeight;
}
public static void main(String[] args) {
Main main = new Main();
main.drop(2);
System.out.println("Total height is " + main.getTotalHeight());
System.out.println("Current height is " + main.getCurHeight());
}
}
复制代码
作者:
myzhang
时间:
2014-9-12 12:15
myzhang 发表于 2014-9-12 12:14
感觉这个代码不是很好,但我想不出来更好的。。。
作者:
夜半风
时间:
2014-9-12 12:40
不会是课程设计吧?
作者:
java_dream
时间:
2014-9-12 13:49
package com.cai.test;
public class FFBody {
public static void main(String[] args){
freeFallingBody(0F,100F,1);
}
/**
*
* @param distance 小球经过距离
* @param initHigh 小球反弹高度
* @param times 小球第times次落下
*/
public static void freeFallingBody(double distance,double initHigh,int times){
if(times<10){
distance += initHigh*1.5;
initHigh *= 0.5;
times++;
//递归
freeFallingBody(distance,initHigh,times);
}else if(times==10){
distance += initHigh*1.5;
initHigh *= 0.5;
System.out.println("小球第"+times+"次时经过"+distance+"米");
System.out.println("小球第"+times+"次时反弹"+initHigh+"米");
}
}
}
复制代码
作者:
myzhang
时间:
2014-9-14 19:50
长知识了
作者:
xiayoutianxia
时间:
2014-9-14 20:18
用右移1位会不会更好
作者:
MeryStyle
时间:
2014-9-14 23:48
6楼上说的很好
作者:
lq你微笑时好美
时间:
2014-9-15 00:14
大神…………
作者:
myzhang
时间:
2014-9-15 14:51
想去黑马真不容易啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2