1.递归
斐波那契数列:1,1,2,3,5,8,13...即第三个数是前两个数之和(除第1,2个数)
优点:代码简单
缺点:效率太低
int Fib(int n)
{
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
}
int main()
{
int n = 0;
scanf_s("%d", &n);
int fib = Fib(n);
printf("%d\n", fib);
return 0;
}
2.迭代(提高了效率,不考虑溢出)
int Fib(int n)
{
int a = 1;
int b = 1;
int c = 1;
while (n>2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
scanf_s("%d", &n);
int fib = Fib(n);
printf("%d\n", fib);
return 0;
}