您的位置:首页 > 编程语言 > Java开发

五十道编程小题目 --- 10 反弹的小球 java

2016-08-25 13:04 387 查看
【程序10】

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多

少米?第10次反弹多高?

<pre name="code" class="java">
public class BallFlip {

public static void ballFlip(double m, double n){

StringBuilder sb = new StringBuilder();

double height = m;                     //从m米开始落下来
double sum = m + m/2;                  //第一次落下到弹上来 ,所走的米数 = 本身的高度 + 本身的高度 / 2

System.out.println("第0次所在高度:" + height + " ");
sb.append(m +" + " + m/2 + " + ");

for(int i=0; i<n; i++){

height = m/2;                   //第i次,落下后反弹的高度
m = height;

System.out.println("第"+ (i+1) +"次所在高度:"+height + " ");

if(i+1 >= n){
sum += height;   //最后一次没有 : 本身的高度 / 2
continue;
}

sum += height + height/2;        //第i次落下到弹上来 ,所走的米数 = 本身的高度 + 本身的高度 / 2
sb.append(height +" + " + height/2 + " + ");
if(i%5 == 0){
sb.append("\n");
}
}

sb.insert(0, sum + "=");
String s = sb.substring(0, sb.length()-2);

System.out.println();

System.out.println(s);

}

public static void main(String[] args) {

ballFlip(100, 10);

}

}



输出结果:

第0次所在高度:100.0 
第1次所在高度:50.0 
第2次所在高度:25.0 
第3次所在高度:12.5 
第4次所在高度:6.25 
第5次所在高度:3.125 
第6次所在高度:1.5625 
第7次所在高度:0.78125 
第8次所在高度:0.390625 
第9次所在高度:0.1953125 
第10次所在高度:0.09765625 

299.8046875=100.0 + 50.0 + 50.0 + 25.0 + 
25.0 + 12.5 + 12.5 + 6.25 + 6.25 + 3.125 + 3.125 + 1.5625 + 1.5625 + 0.78125 + 
0.78125 + 0.390625 + 0.390625 + 0.1953125 + 0.1953125 + 0.09765625 



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: