一、非递归实现
代码:
#include <stdio.h>
int Fibo(int num)
{
int f1 = 1;
int f2 = 1;
int f3 = 2;
if (num <= 0)
{
return 0;
}
else if (num < 3 && num > 0) return f1;
else
{
for (int i = 3; i <= num; i++)
{
f3 = f1 + f2;
f1 = f2 ;
f2 = f3;
}
}
return f3;
}
int main()
{
int count;
scanf("%d", &count);
printf("%d", Fibo(count));
return 0;
}
二、递归实现
代码:
#include<stdio.h>
int Fibo(int n)
{
if (n <= 2)
return 1;
else
return Fibo(n - 1) + Fibo(n - 2);//n>2 返还前两个数之和
}
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d\n", Fibo(n));
return 0;
}