天天看點

基礎練習:1085:球彈跳高度的計算

1085:球彈跳高度的計算

【題目描述】

一球從某一高度h落下(機關米),每次落地後反跳回原來高度的一半,再落下。程式設計計算氣球在第10次落地時,共經過多少米? 第10次反彈多高?

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

【輸入】

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

【輸出】

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

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

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

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

【輸入樣例】

20

【輸出樣例】

59.9219

0.0195312

#include<iostream>
using namespace std;
int main()
{
	double h,road;
	cin>>h;
	road=h;
	int i=1;
	while(i<10)    //初始化i=1,i<10,i++與i=2,i<=10,i++相同
	{++i;
	h/=2;           //球第i次的彈跳高度。      !注意 !  h/=2與h*=1/2結果不同
	road+=2*h; 
	}
	cout<<road<<endl;
	cout<<h/2<<endl;       //第10次的彈跳高度是h/2(?)
return 0;
}

           

h=1/2由于1/2結果為0(整型的小數截斷),即h=h0故結果為0;

而h/=2則是h=h/2