c语言斐波那契数列for循环数组,C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列...
自博客园转载:
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语言斐波那契数列的四种实现方式—递归,迭代,数组,队列...相关推荐
- C语言二维数组的四种遍历方式
二维数组的四种遍历方式: a[i][j] *(a[i]+j) *(*(a+i)+j) *(&a[0][0]+i*n+j) 1.a[i][j] : 这种方法是最基本的方式. 2 ...
- 斐波那契数列的四种实现方式(C语言)
斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列, 像这样的:1.1.2.3.5.8.13.21.34.55...... 今天,我们用四种方式来进行实现: 1.递归 ...
- C语言版回字四种写法的一个例子——数组下标访问
声明 int array[10]; 之后,2[array]相当于array[2] . 来自<C和指针>8.1.2节 转载于:https://www.cnblogs.com/zcdqs/ar ...
- C语言结构体的四种定义方式
1.先定义结构体类型,再定义结构体变量 struct student{int age;char* name; };struct student stu;//stu为student的结构体变量 2.定义 ...
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- 10万字C语言入门手册,历时三个月,详细的C语言教程终于出炉了,给你全新C语言入门体验
C语言是一种非常流行的编程语言,它是许多现代编程语言的基础. 什么是计算机? 计算机是一种用于存储.处理.和输出数据的电子设备.它通过程序控制和数学算法来实现数据处理.计算机通过输入设备(如键盘.鼠标 ...
- c语言单链表存储字符串,字符串的三种存储方式
@[TOC] 在数据结构中,字符串要单独用一种存储结构来存储,称为串存储结构.这里的串指的就是字符串.无论学习哪种编程语言,操作最多的总是字符串.我们平常使用最多的存储结构无疑是利用定长数组存储.但是 ...
- C语言实现求解斐波那契数列的四种方法及优化处理(递归,迭代,特殊性质公式,矩阵快速幂)
众所周知,斐波那契数列是非常经典的一个数列,它的数学公式如下 为了便于观察,我们列出它的几项:0 1 1 2 3 5 8 13 21...... 下面我们将介绍四种方法来用C语言计算机 ...
- 【斐波那契数列及螺线 基于C语言】
斐波那契数列及螺线 基于C语言 斐波那契数列:fn = f(n-1)+f(n-2),(n>=3),f1=1,f2=1 用语言描述,就是任何一项都是前面两项的和,第一项是1,第二项是1,第三项开始 ...
- 用python语言编斐波那契数列_用python函数写斐波那契数列
斐波那契数列,又称黄金分割数列.因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上, ...
最新文章
- 两台电脑通过usb共享网络_避开网络限制,通过蓝牙共享网络连接
- js判断浏览器是否支持webGL
- 指定字符串按指定长度进行剪切
- boost的chrono模块运行时解析的测试程序
- Redis 到底有多快?
- 使用Javascript递归遍历本地文件夹
- 给控件做数字签名之三:进行数字签名
- python import sql脚本_13-模块介绍-import两种方式-py文件的两种用途-模块搜索路径-项目开发的目录规范...
- 【BZOJ2553】禁忌,AC自动机+期望DP+矩乘
- 外虚内实是什么意思_取名|为什么00后那么多梓涵?
- java对unicode转码,Unicode编码和中文互转(JAVA实现)
- 切 5G 的蛋糕?先练好内功吧
- AD18原理图到PCB流程
- 美国通胀放缓幅度超预期 美元或面临进一步承压?
- Computer:C盘简介成功解决当Win10系统进行深度学习的时候发现系统C盘满了,教你如何正确卸载一些非必要的内容(提高磁盘内存和网速)
- [XCTF-Reverse] 13-18
- GitLab上传文件教程
- ADS的信号完整性和电源完整性仿真应用方案
- SECS/GEM 半导体设备通讯标准学习笔记
- 融云 | 企业通讯录的设计与实现