求第n个斐波那契数
由两种方法(递归与非递归)
递归:代码较简单,运算量大
非递归:代码较复杂,但运算较简单
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
方法一:用递归的方法
//int Fab(int n){
// if (n <= 2){
// return 1;
// }
// else{
// return Fab(n - 1) + Fab(n - 2);
// }
//}
//
//int main(){
// int n=0;
// printf("输入你想求第几个斐波那契数列:");
// scanf("%d",&n);
// int fab = Fab(n);
// printf("Fab(%d)=%d", n, fab);
// system("pause");
// return 0;
//}
//方法二:用普通的方法
Fab(int n){
int fab1 = 1;
int fab2 = 1;
int fab3 = 0;
if (n <= 2){
return 1;
}
else {
while (n > 2){
fab3 = fab1 + fab2;
fab1 = fab2;
fab2 = fab3;
n = n - 1;
}
return fab3;
}
}
int main(){
int n = 0;
printf("输入你想求第几个斐波那契数列:");
scanf("%d", &n);
int fab = Fab(n);
printf("Fab(%d)=%d", n, fab);
system("pause");
return 0;
}