斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1,1,2,3,5,8,13,21…在数学上,斐波那契数列以如下被以递归的方法定义,就是斐波那契数列由1和1开始,之后的斐波那契数列系数就由之前的两数相加得到.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int Fib(int n){ //递归求斐波那契数
if (n <= 2){
return 1;
}
return Fib(n - 1) + Fib(n - 2);
}
int Fib_N(int n){ //非递归求斐波那契数
int an_1 = 1; //an_1表示n - 1项
int an_2 = 1; //an_2表示n - 2项
int an;
if (n <= 2){
return 1;
}
for (int i = 2; i < n; ++i){ //需要循环n - 2项
an = an_2 + an_1;
an_2 = an_1;
an_1 = an;
}
return an;
}
int main1(){
int n;
scanf("%d", &n);
printf("%d\n", Fib(n));
printf("%d\n", Fib_N(n));
system("pause");
return 0;
}