0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

斐波那契数列的实现方式

我快闭嘴 来源:C语言学习联盟 作者:C语言学习联盟 2022-09-08 10:52 次阅读

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

像这样的:01、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();}

运行结果:

b9397464-2e94-11ed-ba43-dac502259ad0.png


	

	
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数列
    +关注

    关注

    0

    文章

    4

    浏览量

    6162
  • 递归
    +关注

    关注

    0

    文章

    28

    浏览量

    9013
  • 数组
    +关注

    关注

    1

    文章

    417

    浏览量

    25940

原文标题:斐波那契数列的四种实现方式(C语言)

文章出处:【微信号:C语言学习联盟,微信公众号:C语言学习联盟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [4.3.1]--4.3.1实例-打印数列

    语言程序设计高级语言程序
    jf_75936199
    发布于 :2023年03月11日 14:47:40

    【求教贴】用MSI chips设计一个fibonacci 计数器

    display decoder 显示出输出的数列,输出结果如下0,1,1,2,3,5,8,13.。。。。。。。目前想到要用7419
    发表于 10-05 22:48

    llabview中国挑战赛第一题l

    数列。(义大利语:Successione二
    发表于 07-18 06:12

    数列

    生成数列,并求出其中偶数项之和,使用09版本编写
    发表于 08-20 19:59

    求助,ARM DS-5课程作业不会写,谁能代写,500元

    `求助,ARM DS-5课程作业不会写,谁能代写,酬劳是500元主要内容是用汇编写写两个计算数列的函数,详细要求见附件`
    发表于 02-24 10:39

    exe程序之时钟设计

    exe:exe程序之时钟设计
    发表于 12-26 11:14

    10个经典的C语言面试基础算法及代码

    1、计算Fibonacci数列Fibonacci数列又称
    发表于 07-25 17:07

    一文解析数列

    //第一次尝试:#define _CRT_SECURE_NO_WARNINGS#include#includeint FibNum(int num) { if (num
    发表于 11-04 08:11

    ESP32退避算法实现

    ESP32退避算法实现IOT连接延时二进制指数退避算法利用数列
    发表于 01-11 08:28

    任务和函数的区别?

    人工智能的不断发展,机器学习这门威廉希尔官方网站 也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容:1分别用任务和函数实现
    发表于 02-09 07:47

    C语言教程之数列

    C语言教程之数列,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    Verilog数字系统设计——任务和函数一(数列

    随着人工智能的不断发展,机器学习这门威廉希尔官方网站 也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容:1 分别用任务和函数实现
    发表于 12-05 19:06 9次下载
    Verilog数字系统设计——任务和函数一(<b class='flag-5'>斐</b><b class='flag-5'>波</b><b class='flag-5'>那</b><b class='flag-5'>契</b><b class='flag-5'>数列</b>)

    用递归函数计算数列中的第n项值

    编写一个递归函数,用于计算数列中的第n项值,并在主函数中调用该函数输出
    的头像 发表于 06-07 11:30 3159次阅读

    关于数学理论的经典问题

    留下来的画像来看,他的神韵颇似晚他三个世纪的同胞画家拉斐尔。
    的头像 发表于 06-25 09:59 788次阅读
    关于<b class='flag-5'>斐</b><b class='flag-5'>波</b><b class='flag-5'>那</b><b class='flag-5'>契</b>数学理论的经典问题

    用python编写数列

    数列是一个非常经典的数学问题,它具有广泛的应用和研究价值。在这篇文章中,我将使用Python编写
    的头像 发表于 11-21 15:04 1313次阅读