解题思路:
1.由题可知,计算第十次落地,一共经过的路程,并且计算第十次弹起来的高度
2.定义变量h,表示球的初始高度,输入h的值,在球第一次落地的过程中,经过的路程是h,然后接下来每次弹起来到落下的往返路程为h/2*2,这是第2次落地的时候,走的路程,以后的每次都会缩小一半
3.那么创建一个2-10的循环,h=h/2,表示第1次弹起来的高度为前一次的一半,sum=sum+h*2;计算本次从弹起到落下的往返路程
4.输出sum和h/2,分别表示经过的路程和第十次的弹球高度
#include<bits/stdc++.h>
using namespace std;
int main()
{
double h;//定义变量h为初始高度
cin>>h;//输入初始高度
double sum=h,x;//定义sum为路程,从开始到第一次落地的路程为h
for(int i=2;i<=10;i++)//执行9次循环
{
h=h/2;//表示第i次弹起来的高度
sum=sum+h*2;//表示第i次弹起来到落下所走的路程
if(i==10)//记录第9次弹起来的高度
x=h;
}
cout<<sum<<endl;//输出总路程
cout<<x/2;//输出第十次弹起来的高度
return 0;
}