解题思路:由题意可知,输入的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分
3 人评分
简单的a+b (C语言代码)浏览:759 |
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1636 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:633 |
最长单词 (C语言代码)浏览:1362 |
校门外的树 (C语言代码)浏览:956 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:577 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:531 |
字符逆序 (C语言代码)浏览:612 |
C语言训练-8除不尽的数 (C语言代码)浏览:1396 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:503 |