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;
}

时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题