n的阶乘(记忆化递归)

#include <iostream>

using namespace std;

long long a[21];


long long getRes(int n) {
	if (a[n] != -1) {
		return a[n];
	} else {
		a[n] = getRes(n-1) * n;
		return a[n];
	}
}

void initialize() {
	for (int i = 0; i <= 20; i++) {
		a[i] = -1;
	}
	a[0] = 1;
	a[1] = 1;
	return ;
}


int main() {
	initialize();
	int t;
	while(cin >> t){
		cout << getRes(t) << endl;
	}



}
发布了86 篇原创文章 · 获赞 0 · 访问量 3638

猜你喜欢

转载自blog.csdn.net/bijingrui/article/details/104735329