废话不多说,直接上代码
#include "stdio.h"#include "queue"#include "math.h"using namespace std;/////一:递归实现// 使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。///int fib1(int index) { if(index<1) { return -1; } if(index==1 || index==2) return 1; return fib1(index-1)+fib1(index-2);}/////二:数组实现// 空间复杂度和时间复杂度都是0(n),效率一般,比递归来得快。///int fib2(int index){ if(index<1) { return -1; } if(index<3) { return 1; } int *a=new int[index]; a[0]=a[1]=1; for(int i=2;i