一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,共经过多少米?再反弹弹起多少米?(使用递归来实现)

 1 public class QuickSort {
 2     /*
 3      * 第一次写博客,这道题是我今天面试遇到的题,
 4      * 拿道题的第一个想法就是用递归来做,可惜时
 5      * 间有限没做出来,回家后终于用递归做出来了,
 6      * 从来没有写过博客所以写一篇博客来玩玩
 7      *
 8      * */
 9     //记录下落的总高度
10     private static double sum = 0;
11 
12     //计算第n次下落的高度
13     public static double reHeight(int n) {
14         if (n == 1) {
15             return 100;
16         }
17         return reHeight(--n) / 2;
18     }
19 
20     public static void main(String[] args) {
21         for (int i = 2; i <= 5; i++) {
22             sum += reHeight(i) * 2;
23         }
24         sum += 100;
25         System.out.println(sum);
26         System.out.println(reHeight(6));
27     }
28 }
29 
30 //运行结果:
31 //287.5
32 //3.125
原文地址:https://www.cnblogs.com/JDS20200528/p/13033869.html