斐波那契数:斐波那契数列指的是1、1、2、3、5、8、13、21、······这样一个数列,我们可以发现它后面的一个数是前两个数之和。而在这个数列中的数就被称为斐波那契数。
时间复杂度:时间复杂度实际就是一个函数,该函数计算的是执行基本操作的次数。
时间复杂度的O渐进表示:算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N不断变化时,算法执行次数T(N)的增长速率和f(N)的增长速率相同。则有T(N) =O(f(N)),称O(f(N))为时间复杂度的O渐进表示法。
空间复杂度:类似于算法的时间复杂度,它是算法所需存储空间的度量,记作S(n)=O(f(n))。
接下来就讨论一下斐波那契数的相关问题
用C语言实现:求第N个斐波那契数
这里可以采用递归、循环、尾递归三种方法来解决
方法一:递归
#include<stdio.h>
#include<stdlib.h>
long long Fib(long long N)
{
if (N < 3) //当N<3时,斐波那契数为1
return 1;
return Fib(N - 1) + Fib(N - 2);//函数递归
}
int main()
{
int n = 0;
scanf("%d"