描述
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?
输入描述:
输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)
示例1
输入:
100 1
输出:
100.0 50.0
示例2
输入:
100 3
输出:
250.0 12.5
把第一段下落抽出来,小球到结束就是一个循环了
见代码
cpp
#include <iostream>
#include <iomanip>
#include<cmath>
using namespace std;
int main() {
// 下落的高度和落地的次数
double h;
int n;
cin >> h;
cin >> n;
// write your code here......
double sum=0,s=0;
for(int i=1;i<=n;i++){
if (i==1) sum+=h;
else sum+=2*s;
s=h/pow(2,i);
}
cout<<fixed<<setprecision(1)<<sum<<" "<<s;
return 0;
}