- 暴力通项递归
斐波那契数列a1=1;a2=1;a3=a1+a2;......an=an-1+an-2;使用暴力解法的思路如下:
#include<iostream> #include<vector> using namespace std; static int count=0; /*暴力递归求解斐波那契数列*/ /*时间复杂度是O(2^n)*/ int forceFib(int i){ if(1==i||2==i)return 1; count++; return forceFib(i-1)+forceFib(i-2); } /*使用带备忘录的递归求解*/ /*时间复杂度是O(n)*/ /*1,主调函数中创建并初始化记事本 2,递归函数接收记事本引用和查询序号 3,递归结束条件 4,查询记事本,若查到直接返回 5,查询不到,进行递归,并将计算结果存到记事本 6,返回记事本中结果。 */ int recursion(int i, vector<int>&checkVec);//函数声明 int backupFib(int i){ vector<int>backupVec(i+1,0);/*创建记事本并全部初始化为0*/ return recursion(i,backupVec);/*记事本和查询序号传给递归函数*/ } int recursion(int i, vector<int>&check
斐波那契数列求第N项的算法时间复杂度
最新推荐文章于 2022-11-07 09:54:49 发布
本文探讨了斐波那契数列的暴力递归解法,通过分析其时间复杂度,指出在计算较大项时效率低下。文章可能涉及如何利用动态规划或矩阵快速幂等优化策略提高算法效率。
摘要由CSDN通过智能技术生成