Board logo

標題: 遞迴函式 (一) - 階層運算 [打印本頁]

作者: 周政輝    時間: 2018-6-9 14:32     標題: 遞迴函式 (一) - 階層運算

利用函式遞迴法設計一程式, 讓使用者輸入一個階層數, 電腦計算出答案.
例如: 輸入 5   其算式為  1*2*3*4*5  因此答案是 120
        輸入 3   其算式為  1*2*3  因此答案是 6

[attach]4225[/attach]
作者: 鄭楀諺    時間: 2018-6-9 15:13

  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,1)<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼

作者: 湯東緯    時間: 2018-6-9 15:20

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

作者: 林峻安    時間: 2018-6-9 15:26

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

作者: 吳秉翰    時間: 2018-6-9 15:26

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

作者: 黃安立    時間: 2018-6-9 15:28

  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,1)<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼

作者: 鄭楀諺    時間: 2018-6-9 15:30

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int print(int first_number,int second_number,int times)
  5. {
  6.      int total=0;
  7.      cout<<first_number<<endl;
  8.      cout<<second_number<<endl;
  9.      for(int i=times;i<=times;i++)
  10.      {
  11.              total=first_number+second_number;
  12.              cout<<total<<endl;
  13.              first_number=second_number;
  14.              second_number=total;
  15.              return total;
  16.      }
  17. }
  18. int main()
  19. {
  20.     int first_number=0;
  21.     int second_number=0;
  22.     int times=0;
  23.     cout<<"請輸入第一個數:";
  24.     cin>>first_number;
  25.     cout<<"請輸入第二個數:";
  26.     cin>>second_number;
  27.     cout<<"請輸入你要的個數:";
  28.     cin>>times;
  29.     cout<<print(first_number,second_number,times)<<endl;
  30.     system("pause");
  31.     return 0;
  32. }
複製代碼

作者: 王駿愷    時間: 2018-6-16 14:52

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int total(int a)
  5. {
  6.      int res=1;
  7.      for(int i=1;i<=a;i++)
  8.      {
  9.         res*=i;     
  10.      }
  11.      return res;
  12. }
  13. int main()
  14. {
  15.     int n=0;
  16.     cout<<"請輸入階層數"<<endl;
  17.     cin>>n;
  18.     cout<<n<<"!="<<total(n)<<endl;
  19.     system("pause");
  20.     return 0;
  21. }
複製代碼

作者: 戴嘉禾    時間: 2018-6-23 14:27

本帖最後由 戴嘉禾 於 2018-6-23 14:31 編輯
  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,1)<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼

作者: 林峻安    時間: 2018-7-2 20:16

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int f(int n)
  5. {
  6.     if(n==1)
  7.      return 1;
  8.     else
  9.      return n*f(n-1);
  10. }
  11. int main()
  12. {
  13.      int w;
  14.      cout<<"接成運算";
  15.      cin>>w;
  16.      cout<<f(w)<<"!"<<endl;        

  17.     system("pause");
  18.     return 0;
  19. }
複製代碼

作者: 顏詢    時間: 2018-7-21 11:31

  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,1)<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2