F. 实验4-1-11 高空坠球
题目描述
皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?
输入
输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。
输出
在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范围。
样例查看模式 正常显示查看格式
输入样例1 33 5
输出样例1 94.9 1.0
double height( double h0,double n)
{
int i;
for(i=0;i<n;i++)
{
h0/=2;
}
return h0;
}
#include<stdio.h>
int main()
{
double n,j;
double h0,h1,x;
scanf("%lf %lf",&h0,&n);
h1=h0;
x=h1/2;
for(j=1;j<n;j++)
{
h1+=2*x;
x/=2;
}
if(n==1)
printf("%.1lf %.1lf",h0,height(h0,n));
else
printf("%.1lf %.1lf",h1,height(h0,n));
return 0;
}
注意在写代码之前可以先画个图想想怎么实现!!!