题目链接
https://www.dotcpp.com/oj/problem1145.html
题目描述
一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹.求它在第N次落地时共经过多少米?
输入格式
反弹的次数N
输出格式
小球经过的路程(保留四位小数)
样例输入
复制
2
样例输出
复制
200.0000
解题思路
一:开始的时候从一百向下掉,所以必定经过100米
二:接下来是每次减一半,也就是从第二次落地所经过的路程为前一次的离地距离
代码
#include<stdio.h>
int main()
{
int a,b,i,j;
float sum=100,sn=0;
int N;
scanf("%d",&N);
for(i=0;i<N;i++)
{
if(i==0)
{
sn=sn+sum;
}
else
{
sn=sn+2*sum;
}
sum=sum/2.0;
}
printf("%.4f",sn);
return 0;
}