NO.13 Fibonacci数
来源:互联网 发布:java考试系统倒计时 编辑:程序博客网 时间:2024/06/08 13:18
Fibonacci数
时间限制:3000 ms | 内存限制:65535 KB
难度:1
- 描述
- 无穷数列1,1,2,3,5,8,13,21,34,55…称为Fibonacci数列,它可以递归地定义为
F(n)=1 ………..(n=1或n=2)
F(n)=F(n-1)+F(n-2)…..(n>2)
现要你来求第n个斐波那契数。(第1个、第二个都为1)- 输入
- 第一行是一个整数m(m<5)表示共有m组测试数据
每次测试数据只有一行,且只有一个整形数n(n<20)
- 输出
- 对每组输入n,输出第n个Fibonacci数
- 样例输入
-
3135
- 样例输出
-
125
方法一:
思路:使用递归算法。从第三个数开始,后一个数等于前两个数之和。
C代码实现:
#include <stdio.h>int main(void){ int n; int m; int fi(int n); scanf("%d",&m); while(m--){ scanf("%d",&n); printf("%d\n",fi(n)); } return 0;}int fi(int n){ if(n==1||n==2) return 1; else return fi(n-1)+fi(n-2);}
注:使用递归算法,效率较低。计算较大序数的Fibonacci数时浪费时间和内存。
方法二:
思路:设置两个变量。开始时分别用来存储第一个数和第二个数,之后,使第二个数等于两数之和,再使第一个数等于两数之差(即为原本第二个数的值)。逐级推进。
C代码实现:
#include<stdio.h>int main(void){ int m,n,i,s1,s2; scanf("%d",&m); while(m--){ scanf("%d",&n); for(i=3,s1=s2=1;i<=n;i++){ s2=s1+s2; s1=s2-s1; } printf("%d\n",s2); } return 0;}
阅读全文
0 0
- NO.13 Fibonacci数
- NYOJ 13 Fibonacci数
- NYOJ 13 Fibonacci数
- NYOJ 13 Fibonacci数
- 13-Fibonacci数
- 13 Fibonacci数
- NYOJ-13-Fibonacci数
- 13 Fibonacci数
- NYOJ 13 Fibonacci数
- 13 Fibonacci数
- NYOJ--13--Fibonacci数
- NYOJ 13-Fibonacci数
- 【NYOJ】[13]Fibonacci数
- NYOJ-13-Fibonacci数
- 题目13 Fibonacci数
- 13 Fibonacci数
- 13 Fibonacci数
- NYOJ:13-Fibonacci数
- 精通国际象棋的AI研究员:AlphaZero真的是一次突破吗?
- 百度AAAI 2018论文提出新型NMT模型,性能堪比深层模型
- 谷歌发布全新端到端语音识别系统:词错率降低至5.6%
- 使用Keras快速构建集成卷积网络模型
- Bengio最新论文提出GibbsNet:深度图模型中的迭代性对抗推断
- NO.13 Fibonacci数
- 爬虫爬虫
- navicat for mysql 破解版 v11.1.13
- (ssl 1052)开心的金明
- 最小的乘车费用
- (ssl 2292)竞赛得分
- NO.51 管闲事的小明
- Filter高级开发(二)——实现敏感字符过滤功能
- [Leetcode][python]Reorder List