//使用递推思想,求解正整数的阶乘
//本算法的数学模型为 n! = (n - 1)! * n
#include <iostream>
using namespace std;
int fact(int n)
{
int m[10]; //假设求10以内整数的阶乘
m[1] = 1; //递推的起始值
for(int i = 2; i <= n; i++)
m[i] = m[i - 1] * i;
return m[n]; //返回递推的终值
}
int main()
{
int n;
cin >> n;
cout << "fact(" << n << ")=" << fact(n) <<endl;
return 0;
}
本算法的数学模型为 n! = (n - 1)! * n 。