1.递归方法实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Fib(int n){
if(n==1){
return 1;}
if(n==2){
return 1;}
return Fib(n-1)+Fib(n-2);
}
int main(){
int n;
int a;
printf("请输入需要打印的斐波那契数\n");
scanf("%d",&n);
a=Fib(n);
system("pause");
return 0;
}
2.非递归方法实现
#define _CRT_SECURE_NO_WARNINGS
#include<include>
#include<stdlib.h>
int Fib(int n){
if(n==1){ return 1; }
if(n==2){ return 1; }
//当前项的前一项;
int last1=1;
//当前项的后一项;
int last2=1;
int arr=0;
for( int i=3; i<=n; i++ ){
cur=last2+last1;
//下一次循环的时候;
last2=last1;
last1=cur;
}
return cur;
}
int main()
{
int a;
int n;
printf("请输入需要打印的斐波那契数");
scanf("%d",&n);
a=Fib(n);
system("pause");
return 0;
}