返回列表 發帖

[挑戰練習] 遞迴函式- 費式數列

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

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

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



附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

  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. }
複製代碼

TOP

  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. }
複製代碼

TOP

  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. }
複製代碼
我是嘉禾豬   我是嘉禾豬   我是嘉禾豬

TOP

  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. }
複製代碼

TOP

返回列表