斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,

像这样的:1、1、2、3、5、8、13、21、34、55......

今天,我们用四种方式来进行实现:

1.递归

int Fibon1(int n)
{if (n == 1 || n == 2){return 1;}else{return Fibon1(n - 1) + Fibon1(n - 2);}
}
int main()
{int n = 0;int ret = 0;scanf("%d", &n);ret = Fibon1(n);printf("ret=%d", ret);return 0;
}

2.非递归

int Fibno2(int n)
{int num1 = 1;int num2 = 1;int tmp = 0;int i = 0;if (n < 3){return 1;}else{for (i = 0; i>n-3; i++){tmp = num1 + num2;num1 = num2;num2 = tmp;}return tmp;}
}

3.数组

public  int Fibno3(int n)
{List<int> list = new List<int>();list.fib(1);list.fib(1);int count = list.Count;while (count < n){list.fib(list[count - 2] + list[count - 1]);count = list.Count;}return list[count - 1];}

4.队列

public int Fibno4(int n)
{Queue<int> queue = new Queue<int>();queue.Enqueue(1);queue.Enqueue(1);for (int i = 0; i <= n - 2; i++){queue.Enqueue(queue.AsQueryable().First() + queue.AsQueryable().Last());queue.Dequeue();}return queue.Peek();
}

运行结果:

斐波那契数列的四种实现方式(C语言)相关推荐

  1. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,"你学过数据结构吗?&qu ...

  2. 斐波那契数列的四种实现

    来自:Crossin的编程教室 孔乙己自己知道不能和他们谈天,便只好向 Intern 说话.有一回对我说道,"你写过代码么?"我略略点一点头.他说,"写过代码,--我便考 ...

  3. 剑指Offer #07 斐波那契数列(四种解法)| 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 题目解析 ...

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

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

  5. 斐波那契数列的两种解题方式

    第一种方式:采用递归 ​ def Fibonacci (n):if n==1 or n==2 : return 1else :return Fibonacci(n-2)+Fibonacci(n-1) ...

  6. “斐波那契数列”的两种算法

    "斐波那契数列"的两种算法 斐波那契数列有个规律:从第三个数开始,每个数是前两个数之和,比如: 1 1 2 3 5 8 13 21 34 55...... 现在通过两种方式(递归与 ...

  7. 剑指offer——面试题9:求斐波那切数列的四种方法

    剑指offer--面试题9:求斐波那切数列的四种方法 另一个相关的链接:https://blog.csdn.net/Allenlzcoder/article/details/80297333 总结下求 ...

  8. 斐波拉契数列 Java三种实现

    对于很多Java初学者来说,求解斐波拉契数列,基本上所使用的方式都是递归.对于求解斐波拉契数列来说,递归的实现方式的效率是极其低下的. 在此,我贴出三种实现(递归,迭代,动态规划): 我们先看代码的执 ...

  9. 斐波那契数列,递归与非递归c语言实现

    问题描述:求解斐波那契数列,分别采用递归方式与非递归方式  =2" class="mathcode" src="https://private.codecogs ...

最新文章

  1. 综述 | 图像去噪方法比较
  2. 12月国内网站流量统计5强:360安全中心后来居上
  3. 针对“永恒之蓝(WannaCry)”攻击紧急处置手册
  4. 【错误记录】Flutter 构建报错 ( Error: Method not found: ‘CupertinoModalPopupRoute‘. | 下载最新 Flutter SDK 版本 )
  5. 顺序表的基本操作实验报告_INDIRECT函数从入门到进阶之相同顺序跨表引用
  6. java 脚本引擎性能_Java SE 6 入门之脚本引擎加大程序性能
  7. windows server 注意windows的temp目录
  8. 生成二维码的 jQuery 插件:jquery.qrcode.js
  9. 如何看Linux服务器是否被攻击
  10. mysql 执行计划extra_mysql执行计划explain type和extra
  11. onActivityResult()后onresume()
  12. C#LeetCode刷题之#11-盛最多水的容器(Container With Most Water)
  13. 机器学习中生成模型和判别模型
  14. 简述计算机阶码表达什么,阶码
  15. js判断url是否有效
  16. 2019秋季学期第2周Java学习总结
  17. 同时合并多个视频,并添加转场特效
  18. 给自定义Dialog加入保留对话框值的功能
  19. 高可用解决方案:同城双活?异地双活?异地多活?怎么实现?
  20. java 上传文件-生成文件首页缩略图 生成pdf 抓取图片

热门文章

  1. 杀人游戏-Tarjan
  2. 回文序列是指正读反读均相同的字符序列,如“abba”和“abdba”均是 回文,但“good”不是回文。试写一个算法判定给定的字符串是否为回文序列。
  3. PRACH过程中RA-RNTI和C-RNTI的作用
  4. android点击不灵敏,华为手机触摸屏没反应怎么办?解决手机触摸屏时灵时不灵的办法...
  5. java判断时间段是否交叉重叠
  6. Spark中cache、persist、checkpoint区别
  7. 应用matplotlib的imshow函数显示彩色图像(RGB data)报错的解决方法
  8. 时钟周期是干什么的?底层原理是什么?
  9. 条件随机场CRF(三)
  10. 20210327Java网络编程