题解 | #计算小球走过的路程和反弹高度#
计算小球走过的路程和反弹高度
http://www.nowcoder.com/practice/ac674f68367149d5ad1f857a379e69c9
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main() {
// 下落的高度和落地的次数
double h;
int n;
cin >> h;
cin >> n;
double mile=0,up=0;
up=h*pow(0.5,n);
for(int i=0;i<n;i++){
mile+=h*1.5;
h=0.5*h;
}
if(n==1){
mile=h*2;
}
else{
mile=mile-up;
}
cout<<fixed<<showpoint;
cout<<setprecision(1)<<mile<<' '<<up<<endl;
return 0;
}
#include <iomanip>
#include <cmath>
using namespace std;
int main() {
// 下落的高度和落地的次数
double h;
int n;
cin >> h;
cin >> n;
double mile=0,up=0;
up=h*pow(0.5,n);
for(int i=0;i<n;i++){
mile+=h*1.5;
h=0.5*h;
}
if(n==1){
mile=h*2;
}
else{
mile=mile-up;
}
cout<<fixed<<showpoint;
cout<<setprecision(1)<<mile<<' '<<up<<endl;
return 0;
}