各种有趣的题集合- 2021-06-27 20:40
categories:
- 编程


1.一个小球从300米空中落下,每次反弹3/4的高度,当弹起的高度小于0.0001米时,可以认为小球达到静止状态。编写逻辑,输出当小球达到静止状态时的弹跳次数,以及累积弹跳的总高度是多少?

注意:这里使用的都是double类型,如果使用其他数据类型可能会导致结果不一致,是因为数据类型的精度越高,弹跳的次数也就越多,高度就会越精准

  1. private static void demo1 () {
  2. //最高点
  3. double high = 300.0;
  4. //最低点
  5. double low = 0.0001;
  6. //每次的弹跳比例
  7. double proportion = 3.0 / 4.0;
  8. //每次弹跳的高度:初始化为最低点的原始值
  9. double tmpHigh = low / proportion;
  10. //弹跳总次数
  11. int count = 0;
  12. //弹跳累积高度
  13. double jumpHigh = 0.0;
  14. while (tmpHigh < high) {
  15. tmpHigh = tmpHigh / proportion;
  16. count++;
  17. jumpHigh += tmpHigh;
  18. }
  19. System.out.println("弹跳总次数:" + count);
  20. System.out.println("弹跳累积高度:" + jumpHigh);
  21. }

**