反弹.c 692 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <stdio.h>
  2. int main() {
  3. int n, m;
  4. int i;
  5. // 从键盘输入整数n和m
  6. scanf("%d %d", &n, &m);
  7. // 初始高度为n
  8. double height = n;
  9. // 总路程
  10. double total_distance = 0;
  11. // 第一次落地
  12. total_distance += height;
  13. // 反弹至原高度的四分之一
  14. height /= 4;
  15. // 从第二次落地开始,循环m-1次
  16. for (i = 1; i < m; ++i) {
  17. // 落地
  18. total_distance += height;
  19. // 反弹至原高度的四分之一
  20. height /= 4;
  21. // 再次下落
  22. total_distance += height;
  23. }
  24. // 输出总路程,保留两位小数
  25. printf("%.2f\n", total_distance);
  26. // 输出第m次落地后反弹的高度,保留两位小数
  27. printf("%.2f\n", height);
  28. return 0;
  29. }