当前位置:   article > 正文

斐波那契数列:递归方法和动态规划(c++)_有一个数列,f(n) = f(n-1) + f(n//2) + f(n//3),其中n//m表示整除

有一个数列,f(n) = f(n-1) + f(n//2) + f(n//3),其中n//m表示整除。 如 3//2=1, 4
  1. //斐波那契额数列
  2. //112358132134、……
  3. //在数学上,斐波那契数列以如下被以递推的方法定义:
  4. //F(1) = 1,F(2) = 1, F(n) = F(n - 1) + F(n - 2)(n ≥ 3,n ∈ N*
  5. #include<iostream>
  6. #include<stdlib.h>
  7. #include<stdio.h>
  8. using namespace std;
  9. class solution
  10. {
  11. public:
  12. //递归方法
  13. /*int Fibonacci(int n)
  14. {
  15. if (n == 0)
  16. {
  17. return 0;
  18. }
  19. if (n == 1 || n == 2)
  20. {
  21. return 1;
  22. }
  23. return Fibonacci(n - 1) + Fibonacci(n - 2);
  24. }*/
  25. //动态规划法
  26. int Fibonacci(int n)
  27. {
  28. if (n == 0)
  29. {
  30. return 0;
  31. }
  32. if (n == 1 || n == 2)
  33. {
  34. return 1;
  35. }
  36. int fn1 = 0;
  37. int fn2 = 1;
  38. int fn3;
  39. for (int i = 2; i <= n; i++)
  40. {
  41. fn3 = fn1 + fn2;
  42. fn2 = fn3;
  43. fn1 = fn2;
  44. }
  45. return fn3;
  46. }
  47. };
  48. int main()
  49. {
  50. //类的实例化对象
  51. solution(a);
  52. a.Fibonacci(3);
  53. printf("%d\n", a.Fibonacci(3));
  54. system("pause");
  55. return 0;
  56. }

斐波那契

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/434121
推荐阅读
相关标签
  

闽ICP备14008679号