解题思路:
第一步:输入变量m,n,h和s,(m为初始高度,n为落地次数,h为第n次反弹高度,s为总路程)并输入数值分别为m,n赋值。
首先:初始高度为m,不进入循环内,将其赋值s。
其次:循环内部,从第一次落地,每次反弹高度为h=m/2^i,反弹后,小球会再下落h的高度,所以h要乘2。
注意事项:
(我个人感觉答案有问题,第n次下落后的反弹高度为h=m/2^n,该反弹高度是不会进入循环的,所以真正的s应该由三部分组成:m,循环内部每一次反弹高度的两倍,以及最后一次反弹高度h=m/2^n。我感觉这才是真正的s。但为了代码能过没办法,只能把第n次的反弹高度给去掉了)
参考代码:
#include<stdio.h> #include<math.h> int main() { int n; double m,h,s=0;//m为初始高度,n为落地次数,h为第n次反弹高度,s为总路程 scanf("%lf %d",&m,&n); s=m;//初始高度不会反弹,赋值给s for(int i=1;i<n;i++) { h=m/pow(2,i); s+=2*h;//因为反弹后的摔落高度为h,所以要乘2 } printf("%.2lf %.2lf",m/pow(2,n),s); return 0; }
0.0分
1 人评分
【简单计算】 (C语言代码)浏览:622 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1154 |
IP判断 (C语言代码)浏览:763 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:879 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:561 |
1124题解浏览:592 |
简单的a+b (C语言代码)浏览:526 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:645 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:662 |
众数问题 (C语言代码)浏览:670 |