当前位置:   article > 正文

斐波那契数列(C/C++)_c++斐波那契数列斐波那契数列是非常出名的数列,它的公式是这样的: 1、 f[0] = 0;

c++斐波那契数列斐波那契数列是非常出名的数列,它的公式是这样的: 1、 f[0] = 0;

问题描述:
斐波那契数列是一种数学上的数列,它的定义如下:

F(0) = 0
F(1) = 1
F(n) = F(n-1) + F(n-2), n ≥ 2

也就是说,斐波那契数列的第一项是0,第二项是1,从第三项开始每一项都是前两项之和
因此,斐波那契数列的前几项是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
斐波那契数列中的每个数字被称为斐波那契数
这个数列在自然界中很常见,例如植物的花瓣数、兔子繁殖问题等都可以用斐波那契数列来描述。
在计算机科学中,斐波那契数列也有着广泛的应用。
特别是在算法设计和动态规划中。

函数实现如下:

这里面的注释看不懂的,下面有个例子

  1. //此n表示要求的第n项的斐波那契数
  2. int fibonacci(int n){
  3. int f0 = 0;//第1项
  4. int f1 = 1;//第2项
  5. //因为是从第3项开始是前两项之和,所以第1和2项是其本身
  6. if(n == 0 || n == 1)
  7. return n;
  8. //从第3个位置开始
  9. for(int i = 3;i <= n;i++){
  10. //后一项是前两项之和,算出来
  11. int sum = f0 + f1;
  12. //将两个数中第2个数赋给第1个数f0,将第3个数赋给第2个数f1
  13. f0 = f1;
  14. f1 = sum;
  15. }
  16. //最后返回的是第n项的斐波那契数
  17. return f1;
  18. }


        举个例子:

斐波那契数列不是0 1 1 2 3 5 8......嘛
            首先第一项0 + 第二项1得到第三项1
            将两个数中第2个数传给f0

            将第3个数传给f1

            这一遍for循环之后在进行f0+f1就代表的是第四项等于第2项加第3项的值了,以此类推

       下面自己画的图应该方便理解一点,不太会用电脑作图,可以自己动手画一遍很好理解,望见谅!!!   

代码实现:

        

  1. #include<iostream>
  2. using namespace std;
  3. /*
  4. 斐波那契数列是一种数学上的数列,它的定义如下:
  5. F(0) = 0
  6. F(1) = 1
  7. F(n) = F(n-1) + F(n-2), n ≥ 2
  8. 也就是说,斐波那契数列的第一项是0,第二项是1,后面每一项都是前两项之和。
  9. 因此,斐波那契数列的前几项是:
  10. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
  11. 斐波那契数列中的每个数字被称为斐波那契数。
  12. 这个数列在自然界中很常见,例如植物的花瓣数、兔子繁殖问题等都可以用斐波那契数列来描述。
  13. 在计算机科学中,斐波那契数列也有着广泛的应用。
  14. 特别是在算法设计和动态规划中。
  15. */
  16. //此n表示要求前几项的斐波那契数列
  17. int fibonacci(int n){
  18. int f0 = 0;//第1项
  19. int f1 = 1;//第2项
  20. if(n == 0 || n == 1)
  21. return n;
  22. //从第3个位置开始
  23. for(int i = 3;i <= n;i++){
  24. /*
  25. 举个例子:
  26. 斐波那契数列不是0 1 1 2 3 5 8......嘛
  27. sum = f0 + f1 首先第一项+第二项 == 第三项
  28. f0 = f1 ---> 将d1赋给f0,的f0为1,f0成为第二项
  29. f1 = sum ---> f1成为了第三项
  30. 接下来还是f0+f1,此时相加得到的是第四项,以此类推
  31. 用f1返回
  32. */
  33. //后一项是前两项之和,算出来
  34. int sum = f0 + f1;
  35. f0 = f1;
  36. f1 = sum;
  37. }
  38. return f1;
  39. }
  40. int main(){
  41. int n;
  42. cout << "请输入要计算的斐波那契数列项数:";
  43. cin >> n;
  44. cout << "斐波那契数列的第" << n << "项为: ";
  45. cout << fibonacci(n) << endl;
  46. system("pause");
  47. return 0;
  48. }

斐波那契数列的应用子兔子生子问题:

        斐波那契数列之兔子生子问题

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

闽ICP备14008679号