描述
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?
输入描述:
输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)
示例1
输入:
100 1
输出:
100.0 50.0
示例2
输入:
100 3
输出:
250.0 12.5
把第一段下落抽出来,小球到结束就是一个循环了
见代码
#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;
}