java算法题题目
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
思路:第一次反弹高度100/2 第二次再/2 那就好说了 for10次 每次/2
代码如下:
public class java1 {
public static void main(String[] args) {
//先分析
//第一次反弹高度100/2 第二次再/2 那就好说了 for10次 每次/2
int high = 100;
for(int index = 1;index<=10;index++){
high= high/2;
System.out.println("第"+index+"次反弹的高度为: "+high);
}
}
}
先运行一下看看结果:
啊 0? 哦对 有他喵的小数 得浮点类型
double high = 100;
然后是走过的路程
/*
第一次落地经过高度 100
第二次落地经过高度 100+50+50
第三次落地经过高度 100+50+50+25+25
第四次落地经过高度 100+50+50+25+25+12.5+12.5
明白了 除了第一次 其他的都是之前走过的路程+2个弹起的高度
*/
核心代码如下:
double high = 100;
double sum = 100; //第一次落地经过 100
for(int index = 1;index<=10;index++){
high= high/2;
sum = sum +high+high; //从2开始 每次+2个high
System.out.println("第"+index+"次反弹的高度为: "+high);
System.out.println("第"+(index+1)+"次落地走过的距离为: "+sum);
}
然后看下输出结果:
完美……