一球从某一高度落下(整数,单位是米),每次落地后跳回原来高度的一半,再落下。编程计算球在第5次落地时,共经过多少米?第5次反弹多高?【多组输入】
输入格式
输入一个整数h0,表示球的初始高度
输出格式
两个数据s和h,分别表示第5次落地时共经过s米,第5次反弹高度为h米,s和h用空格隔开
————题源来自老师布置的实验二
由于有点抽象我采取画图分析
路程有弹上去也有落下来的 这个时候我们需要设置一个变量h来存储当前的h值
代码实现~
#include<iostream>
using namespace std;
int main() {
double h0, i, s, h;//采用双精度定义变量
while (cin >> h0) {//用while来实现多组数据输入
s = 0;
h = 0;
for (i = 1; i <= 5; i=i++)//用for来限制循环的次数{
s += h0 + h;//来回都有路程,所以h0,和h都要加上
h = h0 * 0.5;
h0 = h;
}
cout << s << ' ' << h<<endl;//输出结果并换行
}
return 0;
}