Board logo

標題: [挑戰練習] 遞迴函式- 費式數列 [打印本頁]

作者: 周政輝    時間: 2018-7-7 13:54     標題: [挑戰練習] 遞迴函式- 費式數列

費氏數列規則如下:
第n項 = 第 n-1 項  + 第 n-2 項

即整個費式數列為:
1 1 2 3 5 8 13 21 34 55 89 144 233 377...

利用函式遞迴法, 推算費氏數列中第N項的值.



[attach]4431[/attach]
作者: 王駿愷    時間: 2018-7-7 14:32

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int count(int N)
  5. {
  6.     if(N<=1)
  7.     {
  8.         return N;
  9.     }
  10.     else
  11.     {
  12.         return count(N-1)+count(N-2);
  13.     }
  14. }
  15. int main()
  16. {
  17.     int A=0;
  18.     cout<<"費式數列第N項"<<endl;
  19.     cin>>A;
  20.     cout<<count(A);
  21.     system("pause");
  22.     return 0;
  23. }
複製代碼

作者: 吳秉翰    時間: 2018-7-7 14:34

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

作者: 戴嘉禾    時間: 2018-7-7 15:28

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int test(int num)
  5. {
  6. if(num<=1)
  7. {
  8. return num;         
  9. }

  10. else
  11. {
  12. return test(num-1)+test(num-2);     
  13. }

  14. }
  15. int main()
  16. {
  17. cout<<test(3)<<endl;

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

作者: 湯東緯    時間: 2018-7-9 20:07

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





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