返回列表 發帖

計算總合 (利用函數遞迴法)

利用函數遞迴法, 分別計算 1加到10 以及 1加到100的總合.

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

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int wave(int root,int result)
  5. {
  6.     int total=result;
  7.     if(root>0)
  8.     {
  9.         total+=root;
  10.         root--;
  11.         return wave(root,total);
  12.     }
  13.     else
  14.     {
  15.         return total;
  16.     }
  17. }
  18. int wave2(int root,int result)
  19. {
  20.     int total=result;
  21.     if(root>0)
  22.     {
  23.         total+=root;
  24.         root--;
  25.         return wave(root,total);
  26.     }
  27.     else
  28.     {
  29.         return total;
  30.     }
  31. }
  32. int main()
  33. {
  34.     int root=1;
  35.     int result=10;
  36.     cout<<wave(10,0)<<endl;
  37.     cout<<wave2(100,0)<<endl;
  38.     system("pause");
  39.     return 0;
  40. }
複製代碼

TOP

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int print(int num,int result)
  5. {
  6.      int total=result;
  7.      if(num>0)
  8.      {
  9.          total+=num;
  10.          num--;
  11.          return print(num,total);
  12.      }
  13.      else
  14.      {
  15.          return total;
  16.      }
  17. }
  18. int main()
  19. {
  20.     int num=0;
  21.     cout<<"請輸入數:";
  22.     cin>>num;
  23.     cout<<print(num,0)<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼
我是嘉禾豬   我是嘉禾豬   我是嘉禾豬

TOP

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int print(int start,int result)
  5. {
  6.      int total=result;
  7.      if(start>0)
  8.      {
  9.          total+=start;
  10.          start--;
  11.          return print(start,total);
  12.      }
  13.      else
  14.      {
  15.          return total;
  16.      }
  17. }
  18. int main()
  19. {
  20.     int start=0;
  21.     cout<<"請輸入數:";
  22.     cin>>start;
  23.     cout<<print(start,0)<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼

TOP

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int print(int start,int result)
  5. {
  6.      int total=result;
  7.      if(start>0)
  8.      {
  9.          total=total+start;
  10.          start--;
  11.          return print(start,total);
  12.      }
  13.      else
  14.      {
  15.          return total;
  16.      }
  17. }
  18. int main()
  19. {
  20.     int start=0;
  21.     cout<<"請輸入數:";
  22.     cin>>start;
  23.     cout<<print(start,0)<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int count(int a,int b)
  5. {
  6.     int total=b;
  7.     if(a>0)
  8.     {
  9.            
  10.            total=total+a;
  11.            a--;
  12.            return count(a,total);
  13.     }
  14.     else
  15.     {
  16.         return total;
  17.     }
  18. }
  19. int count2(int c,int d)
  20. {
  21.     int total2=d;
  22.     if(c>0)
  23.     {
  24.            total2=total2+c;
  25.            c--;
  26.            return count2(c,total2);
  27.     }
  28.     else
  29.     {
  30.         return total2;   
  31.     }
  32. }
  33. int main()
  34. {
  35.     int a=1;
  36.     int b=10;
  37.     cout<<count(10,0)<<endl;
  38.     cout<<count(100,0)<<endl;
  39.     system("pause");
  40.     return 0;
  41. }
複製代碼

TOP

返回列表