第一次反弹:高度为h1=M/2;走过的距离为s1=M+M/22
第二次反弹:高度为h2=h1/2=M/4;走过的距离为s2=s1+M/42
第三次反弹:高度为h3=h2/2=M/8;距离s=s2+M/8*2
…
#include<stdio.h>
int main()
{
int i,size;
double high,sum=0.0;
scanf("%lf %ld",&high,&size);
for(i=1;i<=size;i++){
if(i==1)
sum+=high;
else {
sum+=high*2;
}
high=high/2;
}
printf("%.2lf %.2lf\n",high,sum);
return 0;
}
#include<stdio.h>
#include<math.h>
int main()
{
int i,N;
float M,h,l=0;
scanf("%f%d",&M,&N);
l=M;
for(i=1;i<=N;i++){
h=M/pow(2,i);
l+=h*2;
}
l-=h*2;
printf("%.2f %.2f\n",h,l);
return 0;
}