1.递归法
#include<stdio.h>
int fob(int n)
{
if(n==1||n==2)
return 1;
else
return fob(n-1)+fob(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",fob(n));
return 0;
}
int fob(int n)
{
if(n==1||n==2)
return 1;
else
return fob(n-1)+fob(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",fob(n));
return 0;
}
2.迭代法
#include<stdio.h>
int main()
{
int n;
int fn,f1n,f2n;
scanf("%d",&n);
f1n=1;
f2n=0;
if(n==1)
fn=1;
else
while(n>1){
fn=f1n+f2n;
f2n=f1n;
f1n=fn;
n--;
}
printf("%d",fn);
return 0;
}
int main()
{
int n;
int fn,f1n,f2n;
scanf("%d",&n);
f1n=1;
f2n=0;
if(n==1)
fn=1;
else
while(n>1){
fn=f1n+f2n;
f2n=f1n;
f1n=fn;
n--;
}
printf("%d",fn);
return 0;
}
3.快速幂法
代码见博客POJ3070
这里不多赘述