c语言一球从h米高度自由落下,每次落地后反跳回原高度的一半, 求它在第n次落地时,共经过多少米?
答案:3 悬赏:50
解决时间 2021-01-19 21:47
- 提问者网友:却不属于对方
- 2021-01-19 14:02
c语言一球从h米高度自由落下,每次落地后反跳回原高度的一半, 求它在第n次落地时,共经过多少米?
最佳答案
- 二级知识专家网友:轮獄道
- 2021-01-19 14:28
学好C语音,数学功底一定要好,这个算法可以用递归完成,但是考虑到无限情况,最好是建立一个数学模型出来,这里可以计算一个模型公式:S=2x + x*(n-1)/n
这里n与你弹跳的次数相关,假设弹9下,n = 2^(9-1)可以无限加大,值就会更精确,
那么带入公式就很容易得到结果:
假设从10米掉下,弹9下:
S = 20 + 10*(255/256)
这里n与你弹跳的次数相关,假设弹9下,n = 2^(9-1)可以无限加大,值就会更精确,
那么带入公式就很容易得到结果:
假设从10米掉下,弹9下:
S = 20 + 10*(255/256)
全部回答
- 1楼网友:第幾種人
- 2021-01-19 16:18
这永远不可能落地。 只有个无限趋近于0的。。。
//当时看错题了。感谢评论的盆友。
改:double x = 0;
int i=0;//
for( i = 0;i < n;++i)
{
x+=h; //落下的路程
h = h/2;
if(i != n-1) //在最后一次的时候, 不反弹。
x+=h; //加反弹路程
}
- 2楼网友:傲气稳了全场
- 2021-01-19 15:27
int h,n;
int sum=0;
scanf("%d%d",&h,&n);
for(int i=1;i<=n;i++)
{
sum+=h;
h/=2;
}
sum=sum*2-100;
printf("%d",sum);
int sum=0;
scanf("%d%d",&h,&n);
for(int i=1;i<=n;i++)
{
sum+=h;
h/=2;
}
sum=sum*2-100;
printf("%d",sum);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯