解题思路:由题意可知,输入的M为高度,N为第几次落地,令M的值为m、经过的总距离为h、第N次弹起的高度为x、上升的总距离为y。

以第N次弹起的高度x为对象,模型可看做是依次递减的等比数列,则已知高度M,可通过等比数列的通项公式求第N次弹起的高度为x=m/2^n。
把整个过程分为上升和落下两个过程,则第N次落下时,上升的距离之和可用等比数列的前n项和表示,易知经过的总距离为h=2*(m+y)-m。

再输出x,h的值即可。
注意事项:1、第N次落地时经过的距离不包括再次弹起时经过距离;

2、代数式的建立,等比数列的运用,模型的建构。

3、在输入2的n次方时,我使用了#include<math.h>函数,表示2的n次方时,代码为pow(2,n)。

4、输出时保留两位小数。

参考代码:

# include<stdio.h>

# include<math.h>

int main()

{ double m,n,i,x=0,y=0,h=0,z=0;

scanf("%lf %lf",&m,&n);

for(i=1;i<n;i++)

{

x=m/pow(2,n);

y+=m/pow(2,i);

h=2*(m+y)-m;

}

printf("%0.02lf %0.02lf",x,h);

return 0;

}

创作不易,点赞即支持。


点赞(0)
 

0.0分

3 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论