原题链接:[编程入门]自由下落的距离计算
解题思路:由题意可得一个公比为1/2,首项为m的等比数列,根据等比数列前n项和公式即可得出结果,避免了循环或者递归
注意事项:在计算总路程时要注意弹起后上升的距离还跟着一段等大的下降距离,而且第一段因为只有下降所以要特殊对待,最终的公式里2的n次方可以用(1<<n)代替,这样就不用pow函数可以省去调用math.h的库的一个过程
参考代码:
#include
#include
int main()
{
float m = 0;
int n = 0;
scanf("%f %d", &m, &n);
printf("%.2f %.2f", (float)m / (1<<n), 2.0 * (m * (2.0 - 1.0 / (1 << (n - 1)))) - m);
return 0;
}
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复