1.题目:输入n,求出第n个Fibonacci数

1 1 2 3 5 8 13 21 34 …

2.方法1: 只使用递归

#include <iostream>
using namespace std;int Fib(int i) {if((i == 0) || (i == 1)) // 终止状态,这里从0开始,而不是从1开始return 1;elsereturn Fib(i - 1) + Fib(i - 2); // 归纳项
}int main(int argc, const char * argv[]) {int n;while(cin >> n) {cout << "Fibonacci数第" << n << "项为:" << Fib(n-1) << endl;}return 0;
}

3.方法2:结合动态规划和递归

用递归求出当前位置的Fabonacci数:

(1)如果save[n] != 0,说明之前已经计算过,就不用计算了,相当于记忆功能,直接返回save[n]中的值;

(2)如果n == 1 || n == 0,为1;

(3)否则当前的Fabonacci数等于它前两个数的和:save[n] = f(n-1) + f(n-2);

#include <iostream>int save[100];int f(int n) {if(save[n] != 0) // 已计算过return save[n];if(n == 1 || n == 0) {save[n] = 1;return save[n];}save[n] = f(n-1) + f(n-2);return save[n];
}int main(int argc, const char * argv[]) {int n;memset(save, 0, sizeof(save));while(std::cin >> n)std::cout << f(n) << std::endl;return 0;
}

运行结果:

C++ 求Fibonacci(斐波那契)数相关推荐

  1. 【C语言编程】求Fibonacci(斐波那契)数列前40个数

    问题: 求Fibonacci(斐波那契)数列前40个数. 分析: 这个数列有如下特点:第1,2两个数为1,1.从第三个数开始,该数是其前面两个数之和.即该数列为1,1,2,3,5,8,13,- ,用数 ...

  2. C++ 求Fibonacci(斐波那契数列)前n项的和

    1.题目:求Fibonacci(斐波那契数列)前n项的和,n<=20 Fibonacci数: 1 1 2 3 5 8 13 21 34 - 思路:先求出前20项的数,分别存到数组中.需要时,直接 ...

  3. 用php递归求fibonacci数列,C++_C语言求Fibonacci斐波那契数列通项问题的解法总结,一:递归实现使用 - phpStudy...

    C语言求Fibonacci斐波那契数列通项问题的解法总结 一:递归实现  使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1. 二:数组实现  空间复 ...

  4. 求Fibonacci(斐波那契)数列的的前n项

    1.Fibonacci(斐波那契)数列的定义规律:第一项a1=0,第二项a2=1,从第三项起,每一项都等于前面两项之和. 2.使用a1,a2,a3进行迭代 代码 #include using name ...

  5. 例5.8求Fibonacci(斐波那契)数列的前40个数。

    #include<stdio.h> int main() { int f1=1,f2=1; int i; for(i=1;i<=20;i++) { printf("%12d ...

  6. fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数

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

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

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

  8. c语言整数大小越界,整数越界相加并求第n个斐波纳契数(C语言实现)

    /* * Fibonacci Numbers(斐波纳契数列) * 1, 1,2,3,5,8,13,21,34,55,89,144,233 * 求第n个斐波纳契数 */ #include #includ ...

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

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

最新文章

  1. 新晋院士:直到硕士毕业前都想做公务员,现在只对科研感兴趣
  2. 关于Android Fragment基础点(转)
  3. redis smembersmap_【Redis】redis各类型数据存储分析
  4. Android之提示can‘t execute: Permission denied解决办法
  5. JAVA JFrame画图基础和事件监听
  6. python实现单例模式方法_Python实现单例模式的5种方式
  7. 解决wordcloud显示中文为空格(空白)
  8. 美国计算机科学奥林匹克竞赛试题,中学信息奥林匹克竞赛试题精选.doc
  9. 首次公开专利并且专利数量最多公司(2022.07.25-2022.7.31)
  10. esxi安装系统ndows,ESXI 安装 Windows Server 2012过程
  11. win7安装ruby on rails开发环境
  12. 【WinHex篇】WinHex制作特定区域镜像教程
  13. 用IOC和DI解决懒人老板想喝咖啡但不想自己动手的窘迫
  14. 阿里巴巴icon在vue项目中使用方法
  15. 北科大matlab期末考试,MATLAB 第一次实验课课堂作业
  16. CentOS7 防火墙开放端口配置
  17. 新房贷政策难执行真实原因:央行货币政策非万能
  18. Android文字广告(Textview上下滚动),使用TextSwitcher控件实现
  19. Vue 搭建一个前端项目
  20. 含文档+PPT+源码等]精品微信小程ssm便捷记账本小程序+后台管理系统|前后分离VUE[包运行成功]微信小程序项目源码Java毕业设计

热门文章

  1. 搞笑幽默短信-最想要的什么
  2. 关于CommandTimeOut 【转】
  3. WPF 控件学习 之 容器控件
  4. 哎呀,你对高并发与多线程的解决思路了解的还挺深!
  5. 插件实现了钉钉和企业微信推送消息
  6. 3-2 Linux 命令
  7. 网站的域名一般如何选择
  8. 镶嵌数据集管理影像数据
  9. Microsoft Office Document Imaging 2007提取图片中的文字
  10. 普中单片机开发板HC6800-EM3 v2.2 3.0无法烧录下载程序解决