OpenJudge百鍊習題解答(C++)--題3142:球彈跳高度的計算
阿新 • • 發佈:2019-02-19
題:
- 總時間限制:
- 1000ms
- 記憶體限制:
- 65536kB
- 描述
-
一球從某一高度落下(整數,單位米),每次落地後反跳回原來高度的一半,再落下。
程式設計計算氣球在第10次落地時,共經過多少米? 第10次反彈多高? - 輸入
- 輸入一個整數h,表示球的初始高度。
- 輸出
- 輸出包含兩行:
第1行:到球第10次落地時,一共經過的米數。
第2行:第10次彈跳的高度。
注意:結果可能是實數,結果用double型別儲存。
提示:輸出時不需要對精度特殊控制,用cout << ANSWER,或者printf("%g", ANSWER)即可。 - 樣例輸入:
-
20
- 樣例輸出:
-
59.9219 0.0195313
解:
#include<iostream> using namespace std; double J(int n,double h) { if(n==1) { return h; } return h+J(n-1,h/2); } double JJ(int n,double h) { if(n==1) { return h/2; } return JJ(n-1,h/2); } int main() { double h; cin>>h; cout<<J(10,h)*2-h<<endl; cout<<JJ(10,h)<<endl; return 0; }