习题4-8 高空坠球
皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?
输入格式:
输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。
输出格式:
在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范围。
输入样例:
33 5
输出样例:
94.9 1.0
1 #include<stdio.h> 2 int main(){ 3 int i,h,n; 4 scanf("%d %d",&h,&n); 5 double sum=0,h1=h; 6 7 if(n==1) 8 { 9 sum+=h1; 10 h1=h1/2; 11 } 12 else if(n==0) 13 { 14 sum=0.0; 15 h1=0.0; 16 } 17 else{ 18 sum+=h1; 19 for(i=1;i<n;i++) 20 { 21 h1=h1/2; 22 sum+=h1*2; 23 } 24 h1=h1/2; 25 } 26 printf("%.1f %.1f\n",sum,h1); 27 return 0; 28 }

浙公网安备 33010602011771号