斐波那契数列 使用记忆化搜索实现 (c++)

#include
using namespace std;

/*
02-斐波那契数列求和
数列特征  F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
*/

int fib[1000]; // 将第一次计算好的结果进行保存,避免重复计算 

int func(int n) {
     
	if(n==1 ||n==2) {
     
		return 1;
	}

	if(fib[n] != 0) {
     
		return fib[n];
	} else {
     
		// 将结果保存到数组中
		fib[n-1] = func(n-1);
		fib[n-2] = func(n-2);
		
		return fib[n-1] + fib[n-2];
	}
}

int main() {
     
	int n;
	cout <<"请输入n : ";
	cin >> n;
	cout << "结果为:" << func(n) <<endl;
}

你可能感兴趣的:(c++算法,算法)