斐波那契数列是什么?就是第一个数+第二个数=第三个数

例如:1+1=2 1+2=3

1 10
1 1 2 3 5 8 13 21 34 55

所以该去怎么设计呢,正好这几天正在学递归,我就想用递归的方式先写

1.递归写法

那我们怎么去求呢,假设我想求第4个斐波那契数我可以先把第三个求出来,再把第二个求出来

然后加在一起就是第四个,第三个可以用第二个和第一个求出来,这样就可以实现递归写法

代码:

int Fin(int a)
{if(a <= 2)//当a<2的时,返回1{return 1;}elsereturn Fin(a-1)+Fin(a-2);//求第4个斐波那契数可以先把第三个和第二个求出来
}
int main()
{int a = 0;int ret = 0;printf("请输入\n");scanf("%d",&a);ret = Fin(a);printf("ret = %d",ret);}

看来成功了,但是它有一个巨大的弊端,假设我想求第100个斐波那契数,我就要把第99个斐波那契数和第98个斐波那契数给求出来,而第99个斐波那契数又要求第98、97个。。。一直求下去需要很大的计算量,所以并不是所有的题目都适合用递归,要分清楚形势。

2.不递归

不递归的写法就是循环嘛,蛮简单的

代码:

int fin2(int num) {int a = 1;int b = 1;int c = 1;//初始值为1方便输出第一个\第二个斐波那契数while (num > 2) {c = a + b;a = b;b = c;num--;}return c;
}
int main() {int num = 0;int ret = 0;printf("请输入\n");scanf("%d", &num);ret = fin2(num);printf("ret = %d\n", ret);
}

不管它值是否溢出,但它算出来了

你学废了吗

C语言题目:斐波那契数相关推荐

  1. 用C语言实现斐波那契数

    如何用C语言实现斐波那契数 首先要理解以下斐波那契数的概念 斐波那契数列指的是这样一个数列" 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 23 ...

  2. 用C语言求斐波那契数1,1,2,3,5,8......

    斐波那契数规律:第三个数等于前两个数之和 分别设为a,b,c,则 当n<=2时,c=1; 当n>2时,c=a+b 运用循环求,n--是防止程序进入死循环,当n>2时,每循环一次减一, ...

  3. C语言实现斐波那契数

    斐波那契的前几项数值是1,1,2,3,5,8,13......,不难发现在斐波那契数列中,除了前两项是1外,后面的每一项都是前两项的和.发现了这一点之后,利用代码实现斐波那契数问题就变得容易很多了.只 ...

  4. C语言 打印斐波那契数

    大家好!今天来打印斐波那契数. 首先,斐波那契数: 斐波那契数列(Fibonacci sequence),又称 黄金分割 数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子 ...

  5. 51-C语言-求斐波那契数的前n项和

    问题: 输入n,输出斐波那契数列前n项和. 思路: 什么是斐波那契数列--1 1 2 3 5 8.......即从第三位开始,设从第三位开始,每次所得数字为c,都有c=a+b; a为c的第前2个数,b ...

  6. D38| DP理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    DP理论基础 重要知识点: 1.动规和贪心的区别:动规是由前一个状态推导出来的,而贪心是局部直接选最优的 2.动规五部曲: 1)确定dp数组(dp table)以及下标的含义 2)确定递推公式 3)d ...

  7. C语言——求第n个斐波那契数

    C语言--求第n个斐波那契数 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: f(n)=f(n-1)+f(n-2),当n>1时,当n=0,f(0)=0 ...

  8. C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈

    C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈 分享到: QQ空间 新浪微博 腾讯微博 豆瓣 人人网 递归是一种强有力的技巧,但和其他技巧一样,它也可能被误用. 一般需要递归解决的问题有两个特 ...

  9. 计算斐波那契数-c语言

    计算斐波那契数-c语言 斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入, ...

最新文章

  1. 《数学之美》第26章 维特比和他的维特比算法
  2. Day71 分页,cookie and Session
  3. 去掉烦人的“正在配置Windows”
  4. 中文版的SAP Cloud for Customer销售订单创建手册
  5. 外星人图像和外星人太空船_卫星图像:来自太空的见解
  6. python 实例化父类对象_在Python中从现有超类实例化子类
  7. KOFLive Beta Daily-Scrum 2
  8. Confluence 6 已经存在的安装配置数据库字符集编码
  9. 新浪微博最新的、通吃网络应用和Air应用的SDK问世了
  10. windows 安装 pip工具
  11. Makefile--伪目标 (三)
  12. 多线程之volatile关键字
  13. MVC3+EF4.1学习系列(八)-----利用Repository and Unit of Wor
  14. Qt实现一个抽奖游戏
  15. NOI Linux 2.0的安装
  16. Java 基础 Collection集合拓展
  17. 基于STM32+FreeRtos+ESP8266+MQTT连接阿里云
  18. 手机网页图片自适应大小 background-size css 图片全屏 背景尺寸设置
  19. 网下“范跑跑”:范美忠的另一面
  20. 信号截断及能量泄漏效应

热门文章

  1. bp神经网络的训练方法,BP神经网络能够做什么
  2. IoT物联网设备丢消息问题排查指南
  3. 做减法才是真本事,别以为你很能学,做加法一点都不难
  4. 转:性能测试解惑之并发压力
  5. 金蝶 获取accesstoken
  6. k8s集群节点无法创建pod解决:错误提示(Docker error : “/sys/fs/cgroup/memory/xxxx“ “no space left on device“)
  7. C语言小球滚动程序,关于小球滚动与滑动问题的处理方法
  8. SOLIDWORKS Electrical和CAD电气版有啥区别?
  9. 一看就懂的MySQL的FreeList机制
  10. js判断是否为对象的几种方法