解题思路:

             由题: 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。

             可知: 一次落地的距离=下一次落地后弹起的距离*2;即L1=T1*2=L2+T1;

                        因此第n次落地后弹起的距离为Tn=Ln/2;

                        在n次落地球所经过的总距离S=L1+L2+T1+L3+T2+.....+Ln+Tn-1=L1+L1+L2+L3+......+Ln-1;


弹跳模型.png

注意事项:S=L1+L2+T1+L3+T2+.....+Ln+Tn-1=L1+L1+L2+L3+......+Ln-1

                 中L1出现了两次,且最终落地距离为Ln-1;
参考代码:

#include<stdio.h>
void main()
{
  int m,n;
  float S=0,T;
  scanf("%d%d",&m,&n);
  S=m;
  T=m/2;
  for(int i=1;i<n;i++)
  {
  S+=2*T;
  T=T/2.0;
  }
  printf("%.2f %.2f",T,S);
}


点赞(0)
 

0.0分

15 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

QQ 2月前 回复TA
@秃尼老师 @dotcpp0668475 浮点类型的数初始化应该是0.0
秃尼老师 1年前 回复TA
@秃尼老师 感觉差不多呀
秃尼老师 1年前 回复TA
我这个代码有啥错误吗?提交一直出错,真心学习。
#include<stdio.h>
int main()
{
  int m,n;
  float S=0,T;
  scanf("%d%d",&m,&n);
  S=m;
  T=m/2;
  for(int i=1;i<n;i++)
  {
  S+=2*T;
  T=T/2.0;
  }
  printf("%.2f %.2f",T,S);
}