问题 H: 例题5-8 Fibonacci数列
时间限制: 1 Sec 内存限制: 128 MB献花: 185 解决: 182
[献花][花圈][TK题库]
题目描述
输入一个正整数n,求Fibonacci数列的第n个数。Fibonacci数列的特点:第1,2个数为1,1。从第3个数开始,概述是前面两个数之和。即:
![](http://codeup.cn/attached/image/20141023/20141023193622_46722.jpg)
要求输入的正整数n不超过50.
输入
一个不超过50的正整数
输出
Fibonacci数列的第n个数,末尾输出换行。
样例输入
20
样例输出
6765
参考代码:
#include<stdio.h>
int main(void){
int n,i,ret=0;
int a[50]={0};//初始化数组
a[0]=1;
a[1]=1;
for(i=2;i<50;i++){
a[i]=a[i-1]+a[i-2];
}
scanf("%d",&n);
//printf("%d",a[49]);
if(n==1||n==2){
ret=1;
}else{
ret=a[n-1];
}
printf("%d\n",ret);
return 0;
}
思路:用数组保存Fibonacci数列,最后再输出第n-1项的值,注意数组从0开始计数。n变量保存用户输入的值,i变量用来遍历输入,ret变量保存输出结果。