3348 - 习题5-11 求多次落地弹球高度

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 12 MB

一个球从100m的高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。

求它在第N次落地时,共经过了多少米,第N次反弹多高。

题目输入

一个正整数N,表示球落地的次数。

题目输出

length=球第N次落地时所经过了距离

high=球第N次落地反弹的高度

小数点后保留4位小数。

注意:末尾输出换行。

输入/输出样例

输入格式

10

输出格式

length=299.6094
high=0.0977

C语言解答

#include<stdio.h>
int main()
{
	int n,i;
	double length=100,high=length/2;
	scanf("%d",&n);
	for(i=2;i<=n;i++)
	{
		length=length+2*high;
		high=high/2;
	}
	printf("length=%3.4f\nhigh=%1.4f\n",length,high);
	
	return 0;
}

C++解答

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int n;
	cin>>n;
	double h=100,sum=0;
	for (int i=1; i<=n; i++)
	{
		sum+=2*h;
		h/=2;
	}
	printf("length=%.4lf\nhigh=%.4lf\n",sum-100,h);
	return 0;
}