18048 自由落体
Description
一个球从100米的高度自由落下,每次落地后弹起的原来高度的一半。计算并输出第n次落地时,共经过了多少米,第n次弹起的高度是多少?结果显示3位小数。
输入格式
从键盘输入一个数n(n>0)
输出格式
输出两个数,分别为共经过的米数和第n次弹起的高度,以一个空格分隔
输入样例
1
输出样例
100.000 50.000
Notes:
- 共经过多远包括弹起高度+落下高度
- 注意double型,“%lf”
- 注意输出格式(空格,保留小数)
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
double m = 0,h = 100;
if(n == 1){
printf("%.3lf %.3lf\n",h,h/2);
return 0;
}
h /= 2;
while(n >= 2){
m = m + 2 * h;
h /= 2;
n--;
}
double M = m + 100;
printf("%.3lf %.3lf\n",M,h);
return 0;
}