1170 - C语言6.18
一个球从100米高度自由落下,每次落地后反弹会原高度的一半,再落下,再反弹。求它在第n次落地时,共经过多少米以及第n次反弹多高。
题目输入
一个正整数n。
题目输出
第n次落地时共经过多少米以及第n次反弹多高,保留4位小数。
请注意行尾输出换行。
输入/输出样例
题目输入
10
题目输出
299.6094 0.0977
C语言解答
#include<stdio.h> int main(){ int n; int i; double sum=100.0,high=100.0; scanf("%d",&n); for(i=1;i<n;i++){ high=high/2; sum+=high*2; } high=high/2; printf("%.4lf %.4lf\n",sum,high); return 0; }
C++解答
#include <stdio.h> int main() { int i, n; float h, tot; h = 100; tot = 0; scanf("%d", &n); /* 模拟前n-1次反弹的过程 */ for (i = 1;i < n;i++) { tot += h; h = h / 2; tot += h; } /* 模拟第n次反弹的过程 */ tot += h; h = h / 2; printf("%.4f %.4f\n", tot, h); return 0; }