1 /*10 【程序 10 自由落体】
2 题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;
3 求它在 第 10 次落地时,共经过多少米?
4 第 10 次反弹多高?
5 */
6
7 /*分析
8 * 第一次落地再弹上去经过100+50米
9 * 第二次。。。。。。。 。50+25米
10 * 第三次。。。。。。。 。25+12.5米
11 *第四次。。。。。。。 。12.5+6.25米 //路程和高度都要用float类型
12 * 。。。。
13 * 第十次落地的路程只需要算落地,不需要弹起来;弹起的高度就是前一次弹起高度的一半
14 *
15 * 综上,除第一次外,每次落下的距离是前一次弹起的距离的一半,每次弹起的距离又是前一次落下的一半,用数据除以十次2,再根据实际情况求和就可以得到总路程
16 * */
17
18
19 package homework;
20
21 public class _10 {
22
23 public static void main(String[] args) {
24 //声明高度和走过的路程
25 float h=100,s=0;
26 //十次落地用for循环遍历
27 for (int i = 10; i>0; i--) {
28 s=s+2*h; //第一次弹起加上第二次落下的高度(多加了一个100)
29 h=h/2; //每次落下后弹起的高度是原来高度的一半
30 }
31 s=s-100; //将前面多加的100减去;
32 System.out.println("第十次落地时经过的总路程:"+s+"米");
33 System.out.println("第十次弹起的高度:"+h+"米");
34
35 }
36
37 }