1.斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……这个数列从第3项开始,每一项都等于前两项之和。在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
2.fibnacci数列的递归表达式:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
3.#include <stdio.h>
int fibo(int n)
{
if (n <= 2)
{
return 1;
}
else
{
return fibo(n - 1) + fibo(n - 2);
}
}
int main()
{
int n ; printf("n = ");
scanf("%d", &n);
int result;
result= fibo(n);
printf("%d", result);
return 0;
}
在计算fibo(10)时可以秒出答案,但到了fibo(1000)时计算了五六分钟还出不了结果,那就更不必说fibo(10000)了。
之后参考https://blog.csdn.net/m0_68164889/article/details/124393721了解到该递归效率极低
可利用该代码加快速度#include <stdio.h>
int Fibonacci(int n)
{
int a = 1;
int b = 1;
int c = 1;
while (n >= 3)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = Fibonacci(n);
printf("第%d个Fibonacci数列为%d\n",n, ret);
return 0;
}