当前位置:   article > 正文

c++,斐波那契数列以及各项求和(小白类讲解)_c++斐波那契数列课程

c++斐波那契数列课程

今天来和大家讲讲斐波那契数列的那些事。

首先来介绍一下这个数列吧:

斐波那契数列,又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以子繁殖为例子而引入,故又称“兔子数列”,其数值为:0、1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)≥ 2,∈ N*)。

其实说白了就是第一项和第二项给定,第三项=第二项+第一项,第四项=第三项+第二项。。。。。。后一项等于前两项的和。

思路:由上文标红的那个关系,可知可以用数组来解决这个问题。因此可以将用户输入的数字n作为动态数组的元素项数,根据定义找出各项关系。

此时可以用new函数定义动态数组。就是下面那个样子。a是数组名。n是用户输入的数字。

	int* a = new int[n];	

不要忘了  定义数组要引用头文件。

#include<string>

下面是源码,仅供参考,如有错误,多多指正。

  1. #include<iostream> //头文件
  2. #include<string>
  3. using namespace std;
  4. int fab(int n) //定义斐波那契数列函数
  5. {
  6. cout << "这几项数为:";
  7. if (n == 0) //输入0时不符合
  8. {
  9. cout << "请重新输入。";
  10. }
  11. else if (n == 1 || n == 2) //输入1和2时为特例,直接输出即可
  12. {
  13. cout << n << endl << " 这几项的和为:" << n;
  14. }
  15. else
  16. { //输入其他数时,可计算
  17. int* a = new int[n]; //定义动态数组,将数列的总共n项作为数组元素
  18. for (int i = 0; i < n; i++)
  19. {
  20. a[0] = 0;
  21. a[1] = 1;
  22. a[i] = a[i - 1] + a[i - 2]; //根据数列定义,找出各项关系
  23. }
  24. for (int i = 0; i < n; i++) //用循环遍历各项
  25. {
  26. cout << a[i] << " ";
  27. }
  28. cout << endl << "这几项的和为:"; //用累加法计算各项的和
  29. int d = 0;
  30. for (int i = 0; i < n; i++)
  31. {
  32. d = a[i] + d;
  33. }
  34. cout << d;
  35. }
  36. return 0; //自定义函数结束
  37. }
  38. //主函数结束
  39. int main()
  40. {
  41. //项目一:设计和编写程序,完成对输入长度的斐波那契数列通项
  42. // 及
  43. // 数列和的求值。
  44. fab(2);
  45. cout << endl;
  46. system("pause");
  47. return 0;
  48. }

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

闽ICP备14008679号