自博客园转载:

1.递归

效率低,除了最后一个数,每个数都被重复计算若干次

1: //递归实现

2: public static int Fib1(int n)

3: {

4: if (n < 3)

5: {

6: return 1;

7: }

8: else

9: {

10: return Fib1(n - 1) + Fib1(n - 2);

11: }

12: }

2.迭代

效率最高,时间复杂度O(n),空间复杂度是O(1)

1: //迭代实现

2: public static int Fib2(int n)

3: {

4: if (n < 3)

5: {

6: return 1;

7: }

8: else

9: {

10: int first = 1;

11: int second = 1;

12: int temp = 0;

13:

14: for (int i = 0; i < n - 2; i++)

15: {

16: temp = first + second;

17: first = second;

18: second = temp;

19: }

20: return temp;

21: }

22: }

3.数组

效率一般,比递归快,时间复杂度O(n),空间复杂度是O(n)

1: //数组实现

2: public static int Fib3(int n)

3: {

4: List list = new List();

5: list.Add(1);

6: list.Add(1);

7: int count = list.Count;

8:

9: while (count < n)

10: {

11: list.Add(list[count - 2] + list[count - 1]);

12: count = list.Count;

13: }

14:

15: return list[count - 1];

16: }

4.队列

时间复杂度O(n),空间复杂度是O(1)

1: //队列实现

2: public static int Fib4(int n)

3: {

4: Queue queue = new Queue();

5: queue.Enqueue(1);

6: queue.Enqueue(1);

7:

8: for (int i = 0; i <= n - 2; i++)

9: {

10: queue.Enqueue(queue.AsQueryable().First() + queue.AsQueryable().Last());

11: queue.Dequeue();

12: }

13: return queue.Peek();

14: }

c语言斐波那契数列for循环数组,C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列...相关推荐

  1. C语言二维数组的四种遍历方式

    二维数组的四种遍历方式: a[i][j]   *(a[i]+j)   *(*(a+i)+j)    *(&a[0][0]+i*n+j)  1.a[i][j] :  这种方法是最基本的方式. 2 ...

  2. 斐波那契数列的四种实现方式(C语言)

    斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列, 像这样的:1.1.2.3.5.8.13.21.34.55...... 今天,我们用四种方式来进行实现: 1.递归 ...

  3. C语言版回字四种写法的一个例子——数组下标访问

    声明 int array[10]; 之后,2[array]相当于array[2] . 来自<C和指针>8.1.2节 转载于:https://www.cnblogs.com/zcdqs/ar ...

  4. C语言结构体的四种定义方式

    1.先定义结构体类型,再定义结构体变量 struct student{int age;char* name; };struct student stu;//stu为student的结构体变量 2.定义 ...

  5. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  6. 10万字C语言入门手册,历时三个月,详细的C语言教程终于出炉了,给你全新C语言入门体验

    C语言是一种非常流行的编程语言,它是许多现代编程语言的基础. 什么是计算机? 计算机是一种用于存储.处理.和输出数据的电子设备.它通过程序控制和数学算法来实现数据处理.计算机通过输入设备(如键盘.鼠标 ...

  7. c语言单链表存储字符串,字符串的三种存储方式

    @[TOC] 在数据结构中,字符串要单独用一种存储结构来存储,称为串存储结构.这里的串指的就是字符串.无论学习哪种编程语言,操作最多的总是字符串.我们平常使用最多的存储结构无疑是利用定长数组存储.但是 ...

  8. C语言实现求解斐波那契数列的四种方法及优化处理(递归,迭代,特殊性质公式,矩阵快速幂)

    众所周知,斐波那契数列是非常经典的一个数列,它的数学公式如下 为了便于观察,我们列出它的几项:0  1  1  2  3  5  8  13  21...... 下面我们将介绍四种方法来用C语言计算机 ...

  9. 【斐波那契数列及螺线 基于C语言】

    斐波那契数列及螺线 基于C语言 斐波那契数列:fn = f(n-1)+f(n-2),(n>=3),f1=1,f2=1 用语言描述,就是任何一项都是前面两项的和,第一项是1,第二项是1,第三项开始 ...

  10. 用python语言编斐波那契数列_用python函数写斐波那契数列

    斐波那契数列,又称黄金分割数列.因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上, ...

最新文章

  1. 两台电脑通过usb共享网络_避开网络限制,通过蓝牙共享网络连接
  2. js判断浏览器是否支持webGL
  3. 指定字符串按指定长度进行剪切
  4. boost的chrono模块运行时解析的测试程序
  5. Redis 到底有多快?
  6. 使用Javascript递归遍历本地文件夹
  7. 给控件做数字签名之三:进行数字签名
  8. python import sql脚本_13-模块介绍-import两种方式-py文件的两种用途-模块搜索路径-项目开发的目录规范...
  9. 【BZOJ2553】禁忌,AC自动机+期望DP+矩乘
  10. 外虚内实是什么意思_取名|为什么00后那么多梓涵?
  11. java对unicode转码,Unicode编码和中文互转(JAVA实现)
  12. 切 5G 的蛋糕?先练好内功吧
  13. AD18原理图到PCB流程
  14. 美国通胀放缓幅度超预期 美元或面临进一步承压?
  15. Computer:C盘简介成功解决当Win10系统进行深度学习的时候发现系统C盘满了,教你如何正确卸载一些非必要的内容(提高磁盘内存和网速)
  16. [XCTF-Reverse] 13-18
  17. GitLab上传文件教程
  18. ADS的信号完整性和电源完整性仿真应用方案
  19. SECS/GEM 半导体设备通讯标准学习笔记
  20. 融云 | 企业通讯录的设计与实现

热门文章

  1. stm32学习探究:利用TB6612驱动直流电机
  2. 蓝色的网站商城后台通用管理模板——后台
  3. C++静态代码分析工具横向对比
  4. 微信小程序中的常用布局方式(总结)
  5. 树莓派 无法定位软件包 解决方案
  6. 计算机无法验证签名,你如何解决电脑无法验证数字签名的问题
  7. Go语言十大排序算法
  8. (一)微信小程序云开发之登录界面设计
  9. 老司机必备的手机浏览器,比UC浏览器还好用
  10. Android------APP FPS测试