C++ 求Fibonacci(斐波那契)数
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(斐波那契)数相关推荐
- 【C语言编程】求Fibonacci(斐波那契)数列前40个数
问题: 求Fibonacci(斐波那契)数列前40个数. 分析: 这个数列有如下特点:第1,2两个数为1,1.从第三个数开始,该数是其前面两个数之和.即该数列为1,1,2,3,5,8,13,- ,用数 ...
- C++ 求Fibonacci(斐波那契数列)前n项的和
1.题目:求Fibonacci(斐波那契数列)前n项的和,n<=20 Fibonacci数: 1 1 2 3 5 8 13 21 34 - 思路:先求出前20项的数,分别存到数组中.需要时,直接 ...
- 用php递归求fibonacci数列,C++_C语言求Fibonacci斐波那契数列通项问题的解法总结,一:递归实现使用 - phpStudy...
C语言求Fibonacci斐波那契数列通项问题的解法总结 一:递归实现 使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1. 二:数组实现 空间复 ...
- 求Fibonacci(斐波那契)数列的的前n项
1.Fibonacci(斐波那契)数列的定义规律:第一项a1=0,第二项a2=1,从第三项起,每一项都等于前面两项之和. 2.使用a1,a2,a3进行迭代 代码 #include using name ...
- 例5.8求Fibonacci(斐波那契)数列的前40个数。
#include<stdio.h> int main() { int f1=1,f2=1; int i; for(i=1;i<=20;i++) { printf("%12d ...
- 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). ...
- C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈
C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈 分享到: QQ空间 新浪微博 腾讯微博 豆瓣 人人网 递归是一种强有力的技巧,但和其他技巧一样,它也可能被误用. 一般需要递归解决的问题有两个特 ...
- c语言整数大小越界,整数越界相加并求第n个斐波纳契数(C语言实现)
/* * Fibonacci Numbers(斐波纳契数列) * 1, 1,2,3,5,8,13,21,34,55,89,144,233 * 求第n个斐波纳契数 */ #include #includ ...
- C语言——求第n个斐波那契数
C语言--求第n个斐波那契数 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: f(n)=f(n-1)+f(n-2),当n>1时,当n=0,f(0)=0 ...
最新文章
- 新晋院士:直到硕士毕业前都想做公务员,现在只对科研感兴趣
- 关于Android Fragment基础点(转)
- redis smembersmap_【Redis】redis各类型数据存储分析
- Android之提示can‘t execute: Permission denied解决办法
- JAVA JFrame画图基础和事件监听
- python实现单例模式方法_Python实现单例模式的5种方式
- 解决wordcloud显示中文为空格(空白)
- 美国计算机科学奥林匹克竞赛试题,中学信息奥林匹克竞赛试题精选.doc
- 首次公开专利并且专利数量最多公司(2022.07.25-2022.7.31)
- esxi安装系统ndows,ESXI 安装 Windows Server 2012过程
- win7安装ruby on rails开发环境
- 【WinHex篇】WinHex制作特定区域镜像教程
- 用IOC和DI解决懒人老板想喝咖啡但不想自己动手的窘迫
- 阿里巴巴icon在vue项目中使用方法
- 北科大matlab期末考试,MATLAB 第一次实验课课堂作业
- CentOS7 防火墙开放端口配置
- 新房贷政策难执行真实原因:央行货币政策非万能
- Android文字广告(Textview上下滚动),使用TextSwitcher控件实现
- Vue 搭建一个前端项目
- 含文档+PPT+源码等]精品微信小程ssm便捷记账本小程序+后台管理系统|前后分离VUE[包运行成功]微信小程序项目源码Java毕业设计