题目描述:
一个小球从n米高度自由落下,每次落地后反跳回原高度的一半,再落下。
求第10次反弹有多高,以及从开始落下到第10次反弹到最高点时一共经历了多少米?
样例:
//输入
20
//输出
0.01953 39.98047
思路:
我的想法是,先定义小数“n”,为下落开始前的高度,再定义两个变量,分别等于“n”,然后for循环10次,代表10次的反弹。
参考代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
double n;
cin >> n;
double m=n;
double s=n;
for (int i = 1; i <= 10; i++)
{
m=m/2;
s=s+m;
}
printf("%.5f",m);
cout<<" ";
printf("%.5f",s);
return 0;
}
复制区:
#include <bits/stdc++.h>
using namespace std;
int main() {
double n;
cin >> n;
double m=n;
double s=n;
for (int i = 1; i <= 10; i++)
{
m=m/2;
s=s+m;
}
printf("%.5f",m);
cout<<" ";
printf("%.5f",s);
return 0;
}