1. 程式人生 > >北理工計算機復試上機 2007

北理工計算機復試上機 2007

info mes 結果 com spa ole 沒有 span style

1.一個小球,從高為H的地方下落,下落彈地之後彈起高度為下落時的一半,比如第一次彈起高度為
H/2,如此往復,計算從小球H高度下落到第n次彈地往返的總路程。
要求:
1.用遞歸的方法實現
2.輸入H和n,輸出結果
3.註意程序的健壯性
4.可以用C或C++實現

註意,這個題是我自己寫的,我覺得沒什麽但是和我找到的代碼不同,結果不同,我推算過,我的沒有錯,

假如初始高度為10,跳一次路程15

在跳一次10+5+5+2.5是22.5。

第二次跳的時候初始高度是5,跳起2.5,路程7.5

技術分享圖片

 1 // 2007_1.cpp : Defines the entry point for the console application.
2 // 3 4 #include<iostream> 5 6 using namespace std; 7 double b(double h,double n){ 8 if(n==1)return h+h/2; 9 else return h+h/2+b(h/2,n-1); 10 } 11 12 int main(int argc, char* argv[]) 13 { 14 double h,n; 15 cout<<"請輸入高度和次數"<<endl; 16 cin>>h>>n;
17 cout<<"路程"<<endl; 18 cout<<b(h,n)<<endl; 19 20 return 0; 21 }

北理工計算機復試上機 2007