用递归的方法:
//用递归求第n个斐波那契数
int fib(int n){
if(n<=2){
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
#include<stdio.h>
int main(){
int n=0;
printf("请输入n的值:");
scanf("%d",&n);
int result = fib(n);
printf("%d",result);
return 0;
}
用迭代:
//用迭代的方式
int fib(int n);
int fib(int n)
{
int a=1,b=1,c=0;
while(n>=3){
c=a+b;
a=b;
b=c;
n--;
}
return c;
}
#include<stdio.h>
int main(){
int n=0;
printf("请输入n的值:");
scanf("%d",&n);
int result = fib(n);
printf("%d",result);
return 0;
}
输出结果: