1反弹距离(10分)
问题描述:一个球从x米高度落下,每次落地后反弹跳回原高度的一半,再落下。求第n次反弹跳多高(0<n<总弹跳次数)?它最后停在地面时(如果距离小于或等于1e-5 米,则不再反弹),共经过多少米?
难度:适中
输入:初始高度x,反弹次数n
输出: 第n次跳起高度,经过的总米数(小数点后均保留6位,2个输出之间用一个空格隔开)。
提示:1.浮点数采用double类型;2.如果距离小于或等于1e-5 米,则不再反弹。
样例1:输入:100 5
输出:3.125000 299.999976
#include<stdio.h>
void main(){
int n;
double x;
double final=0;
scanf("%lf%d",&x,&n);
int i=0;
for(i=0;i<n;i++){
final=final+x;
x=x/2;
final=final+x;
if(x<=0.00001) break;
}
printf("%lf",x);
while(x>0.00001){
final=final+x;
x=x/2;
final=final+x;
}
final=final-x;
printf(" %lf",final);
return 0;
}