一個小球,從高爲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;
}