1085:球彈跳高度的計算


【題目描述】
一球從某一高度h落下(單位米),每次落地后反跳回原來高度的一半,再落下。編程計算氣球在第10次落地時,共經過多少米? 第10次反彈多高?

輸出包含兩行,第1行:到球第10次落地時,一共經過的米數。第2行:第10次彈跳的高度。

【輸入】
輸入一個整數h,表示球的初始高度。

【輸出】
第1行:到球第10次落地時,一共經過的米數。

第2行:第10次彈跳的高度。

注意:結果可能是實數,結果用double類型保存。

提示:輸出時不需要對精度特殊控制,用cout << ANSWER,或者printf("%g",ANSWER)即可。

【輸入樣例】
20
【輸出樣例】
59.9219
0.0195312
題目分析:
本題可以根據球的運動順序去寫程序,先從高度為h的地方落下,這個時候記錄落下高度,然后再去計算彈起高度,為原來的一半,h = h/2,然后再去記錄彈起高度。
這是一次落下+彈起的記錄,總共循環10次,這時我們就記錄了10次落彈的總距離,最后一次h表示最后彈起的距離,我們用總距離-h,則可以獲得我們需要的結果。

#include<iostream>
#include<cstdio>
using namespace std;
int main() {
	double h,s=0;
	cin>>h;
	int a=0;
	while(a<10){
		a++;
		s+=h;//記錄落下高度
		h=h/2;
		s+=h;//記錄彈起高度 
	}
	cout<<s-h<<"\n"<<h;
	return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM