Board logo

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

作者: tonyh    時間: 2018-7-30 20:38     標題: 遞迴函式 (一) - 階層運算

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



本帖隱藏的內容需要回復才可以瀏覽

作者: 曾堂桂    時間: 2018-7-30 21:00

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int a(int x)
  5. {
  6.    if(x==1)
  7.      return 1;
  8.    else
  9.      return x*a(x-1);
  10. }
  11. int main()
  12. {
  13.     int x;
  14.     cout<<"請輸入數字:";
  15.     cin>>x;
  16.     cout<<x<<"階乘為"<<a(x)<<endl;
  17.     system("pause");
  18.     return 0;   
  19. }
複製代碼

作者: 黃宇綸    時間: 2018-7-30 21:01

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int rec(int x)
  5. {
  6.     if(x==1)
  7.         return 1;
  8.     else
  9.         return x*rec(x-1);
  10. }
  11. int main()
  12. {
  13.     int n;
  14.     cout<<"想算幾階乘? ";
  15.     cin>>n;
  16.     cout<<n<<"!="<<rec(n)<<endl;
  17.     system("pause");   
  18.     return 0;
  19. }
複製代碼

作者: 洪翊庭    時間: 2018-7-30 21:02

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int rec(int y)
  5. {
  6.     if(y==1)   
  7.         return 1;
  8.     else
  9.         return y*rec(y-1);
  10. }

  11. int main()
  12. {
  13.     re:
  14.     int y;
  15.     cout<<"請輸入階層運算的值: ";
  16.     cin>>y;
  17.     cout<<y<<" 階層的運算結果值為 "<<rec(y)<<endl<<endl;
  18.     goto re;
  19.     system("pause");
  20.     return 0;
  21. }
複製代碼

作者: 黃宇瑄    時間: 2018-7-30 21:02

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int rec(int x)
  5. {
  6.     if(x==1)
  7.         return 1;
  8.     else
  9.         return x*rec(x-1);   
  10. }
  11. int main()
  12. {
  13.     int n;
  14.     cout<<"想計算幾階乘? ";
  15.     cin>>n;
  16.     cout<<n<<"!="<<rec(n)<<endl;
  17.     system("pause");   
  18.     return 0;
  19. }
複製代碼

作者: 洪翊展    時間: 2018-7-30 21:03

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

作者: 李沛昂    時間: 2018-7-31 17:05

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int f(int x)
  5. {
  6.     if(x==1)
  7.         return 1;
  8.     else
  9.         return x*f(x-1);
  10. }
  11. int main()
  12. {
  13.     int n;
  14.     cout<<"想算幾階乘? ";
  15.     cin>>n;
  16.     cout<<n<<"!="<<f(n)<<endl;
  17.     system("pause");   
  18.     return 0;
  19. }
複製代碼
yee~




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