一个小球,从高为H的地方下落,下落弹地之后弹起高度为下落时的一半,比如第一次弹起高度为H/2,如此往复,计算从小球H高度下落到第n次弹地往返的总路程。
#include<iostream>
#include<cmath>
using namespace std;
double fun(int n)
{
if(n==1)
return 1;
else
return fun(n-1)+1/pow(2,n-2);
}
int main()
{
int n;
double H;
while(1)
{
cout<<"请输入高度H与次数n:"<<endl;
cin>>H>>n;
if(H==0&&n==0)
break;
cout<<"返回的总路程为:"<<endl;
cout<<fun(n)*H<<endl;
}
return 0;
}