递归实现
根据第三数为前两数之和写出
#include<stdio.h>
int fib(int n)
{
if (n < 3)
return 1;
else
return fib (n - 1) + fib(n - 2);
}
int main()
{
int n;
scanf_s("%d", &n);
printf("%d", fib(n));
return 0;
}
非递归实现
#include<stdio.h>
int fib(int n)
{
int a = 1; int b = 1;
int c;
if (n < 3)
return 1;
else
while (n>2)//实现斐波那契数的生成
{
c = a + b;
a = b;
b = c;
n--;//防止死循环
}return c;
}
int main()
{
int n;
scanf_s("%d", &n);
printf("%d", fib(n));
return 0;
}