ZSTUOJ平台刷题②:Problem 3530.--计算高度

3530: 计算高度

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 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;
}

 

posted @ 2021-05-17 16:34  Ta7KiXuoul  阅读(69)  评论(0编辑  收藏  举报