ZSTUOJ平台刷题②:Problem 3530.--计算高度
3530: 计算高度
Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 4335 Solved: 2432
Description
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(输出保留1位小数)
Input
输入一个正整数n
Output
第n次落下时在空中经过的路程及第n次反弹的高度,输出结果保留一位小数。
Sample Input
2 8
Sample Output
distance=200.0 height=25.0 distance=298.4 height=0.4
代码如下:
#include<bits/stdc++.h> using namespace std; float f(int n){ if(n==1) return 100; else if(n==2) return 200; else{ return f(n-1)+(f(n-1)-f(n-2))/2; } } int main(){ int n; while(~scanf("%d",&n)){ printf("distance=%.1f height=%.1f\n",f(n),(f(n)-f(n-1))/4); } return 0; }