返回列表 發帖

遞迴函式 (三) - 計算總和

本帖最後由 tonyh 於 2014-3-22 14:23 編輯

利用函式遞迴法, 自建 total() 函式, 分別計算
1+2+3+...+5= ?
1+2+3+...+100= ?
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int total(int);
  5. int main()
  6. {
  7.     cout<<"1+2+3+...+5="<<total(5)<<endl;
  8.     cout<<"1+2+3+...+100="<<total(100)<<endl;
  9.     system("pause");   
  10.     return 0;
  11. }
  12. int total(int x)
  13. {
  14.     if(x<=1)
  15.         return x;
  16.     else
  17.         return x+total(x-1);
  18. }
  19. /*
  20.      total(5)=5+total(4)
  21.              =5+4+total(3)
  22.              =5+4+3+total(2)
  23.              =5+4+3+2+total(1)
  24.              =5+4+3+2+1
  25. */
複製代碼

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int total(int);
  5. int main()
  6. {
  7.     int x;
  8.     cout<<"1+....+10= "<<total(10)<<endl;
  9.     cout<<"1+....+100= "<<total(100)<<endl;
  10.     system("pause");   
  11.     return 0;
  12. }
  13. int total(int x)
  14. {
  15.     if(x<=1)
  16.         return x;
  17.     else
  18.         return x+total(x-1);
  19. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int total(int);
  5. int main()
  6. {
  7.     int x;
  8.     cout<<"1+2+3+...+10="<<total(10)<<endl;
  9.     cout<<"1+2+3+...+100="<<total(100)<<endl;
  10.     system("pause");   
  11.     return 0;
  12. }
  13. int total(int x)
  14. {
  15.     if(x<=1)
  16.        return x;
  17.     else
  18.        return x+total(x-1);
  19. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int lol(int);
  5. int main()
  6. {
  7.     int x;
  8.     cout<<"請問要加到哪個數?";
  9.     cin>>x;  
  10.     cout<<endl<<"1+2+3+...+"<<x<<"="<<lol(x)<<endl;  
  11.     system("pause");      
  12.     return 0;  
  13. }
  14. int lol(int x)
  15. {
  16.     if(x<=1)
  17.         return x;        
  18.     else
  19.         return x+lol(x-1);   
  20. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int total(int);
  5. int main()
  6. {
  7.     int x;
  8.     cout<<"1+....+10= "<<total(10)<<endl;
  9.     cout<<"1+....+100= "<<total(100)<<endl;
  10.     system("pause");   
  11.     return 0;
  12. }
  13. int total(int x)
  14. {
  15.     if(x<=1)
  16.         return x;
  17.     else
  18.         return x+total(x-1);
  19. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int total(int);
  5. int main()
  6. {
  7.     cout<<"1+2+3+...+10="<<total(10)<<endl;
  8.     cout<<"1+2+3+...+100="<<total(100)<<endl;
  9.     system("pause");
  10.     return 0;
  11. }
  12. int total (int x)
  13. {
  14.     if(x<=1)
  15.        return x;
  16.     else
  17.        return x+total(x-1);
  18. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int total(int);
  5. int main()
  6. {
  7.     cout<<"1+2+3+...+5"<<total(5)<<endl;
  8.     cout<<"1+2+3+...+100"<<total(100)<<endl;
  9.     system("pause");   
  10.     return 0;
  11. }
  12. int total(int x)
  13. {
  14.     if(x<=1)   
  15.        return x;
  16.     else
  17.        return x+total(x-1);
  18. }
複製代碼

TOP

返回列表