斐波那契fibonacci

斐波那契额数列即前两项F(0)和F(1)都是1,之后的每一项都是前两项相加和即F(3)=2,F(4)=3,F(5)=5;
通项公式:F(n+2)=F(n+1)+F(n)。

1.递归求fn

给出一个n 求斐波那契数列的Fn
递归解法即写一个递归函数,注意两个点
1: 递归边界条件(n=0或者n=1)
2:递归式 F(n+2)=F(n+1)+F(n)
代码:

#include<cstdio>
int F(int n)
{if(n==0||n==1) return 1;//递归边界else return F(n-1)+F(n-2);//递归式
}
int main()
{int n;scanf("%d",&n);printf("%d\n",F(n));return 0 ;
}

2.非递归求fn

因为递归虽然写起来非常方便,但是非常消耗空间,因此还需要掌握非递归算法,下图是递归算法之后的结果
那么,如何解决呢?
思路:用for循环

#include <cstdio>
int main()
{int n,Fn;scanf("%d",&n);int F1=1;           //初始化int F2=1;for(n=n-2;n>0;n=n-2){   F1=(F1+F2);F2=(F1+F2);}Fn=F1;if(n==0)            //判断输出哪个位置上的数字Fn=F2;printf("%d\n",Fn);
}

举个例子就能看懂了吧

就是用两个变量来循环相加。

3.求给出n最近的fibonacci数(2020年冬季pat甲组第一题)

题目是给出一个n 求离这个n最近的斐波那契数,如果前后两个斐波那契数距离一样,输出较小的斐波那契数(这个斐波那契数列是从0、1开始的)

AC代码:

#include <cstdio>
using namespace std;
int main()
{int a,b,c,n;scanf("%d",&n);a=0;b=1;while(c<=n){if(a+b-n>=n-c){break;}c=a+b;a=b;b=c;}printf("%d",c);
}

这个代码虽然能跑AC,也是我自己写的。但是我还没完全理解。后续再更

fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数相关推荐

  1. python实现斐波那契数列详解(黄金分割)

    今天给各位分享一个常见的题目:求斐波那契数列前n项分别是什么(也称为黄金分割数列),整个数列需满足一个条件即第三项的值等于前两项相加的和,如第一项是1.第二项是1.第三项是2.第四项是 3.第五项是5 ...

  2. 使用递归方法计算斐波那契数列详解

    斐波那契数列:1.1.2.3.5.8.13.21....... 首先观察数列,得出规律:f(n)=f(n-1)+f(n-2),n为位数: 其次,定义一个feibonaqie类,构造出方法,由题目易知, ...

  3. 斐波那契算法详解(logn)

    ** 斐波那契算法详解 ** ** 1.斐波那契数列的一般解法: for循环强行计算 ** #include <stdio.h> int main() { int n ; int fn = ...

  4. 递归函数就兔子数C语言,【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)...

    意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列.设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不死亡.问:一对兔子,一年能繁殖成多少对兔子?题中本 ...

  5. c语言斐波那契数列前20项和,,c语言利用数组求斐波那契数列的前20项

    推荐回答 一.斐波那契数列指的是这样一个数列1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711 ...

  6. 【C语言】斐波那契数列(Fibonacci sequence)递归实现 和 非递归实现

    目录 斐波那契数列 引出 C语言代码实现--递归 C语言代码实现--非递归 斐波那契数列 引出 斐波那契数列的应用十分广泛,这里不再列举. C语言代码实现--递归 同时也有许多种代码实现方式,这里仅列 ...

  7. python求斐波那契数列前20项和、每隔5个数空一行_输出斐波那契数列的前20项(每行5个数)_学小易找答案...

    [单选题]The Third State Bank of Laramie has opened an office in Morocco. This office does not take depo ...

  8. ZYH的斐波那契数列【线段树动态开点+矩阵快速幂求斐波那契】

    描述 ZYH最近研究数列研究得入迷啦! 现在有一个斐波拉契数列(f[1]=f[2]=1,对于n>2有f[n]=f[n-1]+f[n-2]), 但是斐波拉契数列太简单啦,于是ZYH把它改成了斐波拉 ...

  9. 裴波那契数列的递归实现与非递归实现

    斐波那契数列是数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1]  )以兔子繁殖为例子而引入,也称为"兔子数列". 指的是这样一个数列:0.1.1.2.3.5 ...

最新文章

  1. AI进军服装零售产业:微软小冰与特步推出定制化服装设计生产及零售平台
  2. 黄聪:wordpress文章同步发布到网易、天涯、新浪博客、百度空间插件
  3. wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件
  4. docker mysql命令大全_Docker命令大全
  5. AtomicInteger 的使用
  6. C语言 Linux版俄罗斯方块,C语言版——俄罗斯方块(一)
  7. linux安装mysql8.0.18_详解mysql8.018在linux上安装与配置过程
  8. java jdbc sqlerver_SQLServer2000的JDBC驱动
  9. 平面波超声成像 (Matlab Filed II仿真)
  10. 设置广告类型的html小窗口,网页两边悬浮窗广告代码
  11. [转]Berkeley DB介绍及主从复制机制
  12. 正方教务系统换数据库服务器,附:正方教务系统成绩录入操作说明- 正方教务系统成绩管理使用说明.doc...
  13. 小众浏览器测评 | 星愿 | 百分cent | Vivaldi | Brave
  14. 华为认证网络工程师考试是中文吗?
  15. bilibili go框架_当红语言只认Go!趣头条技术沙龙聚焦Golang应用热点
  16. php7.phar pocketmine_一位小学生建立一个服务器(MC服务器)的路程-Minecraft篇
  17. WMS仓储管理系统解决方案 附下载地址
  18. want to port JIT to MIPS, any coworker or any hint?
  19. 在水果检测中选择多光谱相机还是高光谱相机?
  20. .net直接调用office com组件操作word与pdf

热门文章

  1. 山东科技大学c语言,C语言练习题(山东科技大学吐血整理)-
  2. 数据挖掘算法-关联算法-Apriori
  3. 转 性能之殇:从冯·诺依曼瓶颈谈起
  4. 绘制饮料自动销售系统顺序图
  5. 关于react props获取不到的问题
  6. 关于 AMP Story,你需要知道这些
  7. 中企海外周报 | 支付宝借力RiverPay进军欧洲健康品牌1600多家门店;汉能启用荷兰最大薄膜太阳能发电工业园...
  8. 关于kinova机械臂报错:The kinematics plugin (arm) failed to load. and Kinematics solver could not be instant
  9. TENER: Adapting Transformer Encoder for Named Entity Recognition 论文详解
  10. E-go加速器相关知识点-----nginx部署