题目描述
输入一个正整数n,求Fibonacci数列的第n个数。Fibonacci数列的特点:第1,2个数为1,1。从第3个数开始,概述是前面两个数之和。即:
要求输入的正整数n不超过50.
输入
一个不超过50的正整数
输出
Fibonacci数列的第n个数,末尾输出换行。
样例输入 Copy
20
样例输出 Copy
6765
题解
思路一:层次性赋值来求
#include<stdio.h>
int main() {
int n, i, F, F1 = 1, F2 = 1;
scanf("%d", &n);
for(i = 3; i <= n; i++) { //出错:i == 3....
F =F1 + F2;
F1 = F2;
F2 = F;
}
printf("%d", F);
}
思路二 利用数组来求
#include<stdio.h>
int main() {
int a[51] ={0, 1, 1};// 便于数组下标对齐
int n,i;
scanf("%d", &n);
for(i = 3; i<=n; i++) {
a[i] = a[i-1] + a[i-2];
}
printf("%d", a[n]);
}