3348 - 习题5-11 求多次落地弹球高度
时间限制 : 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; }