//使用递归思想,求解正整数的阶乘
//本算法的数学模型为 n! = n * (n - 1)!
#include <iostream>
using namespace std;
int fact(int n)
{
if(n == 1) //递归的终止条件
return 1; //直接返回结果
return n * fact(n - 1); // n * (n - 1)!
} //自己调用自己:递归
int main()
{
int n;
cin >> n;
cout << "fact(" << n << ")=" << fact(n) <<endl;
return 0;
}
本算法的数学模型为 n! = n * (n - 1)! 。
“有许多实际问题往往不可能或很难找到显而易见的递推关系,这时,递归算法就表现出明显的优越性。”
“递归算法比较符合人的思维方式,逻辑性强,可将问题描述得简单扼要,可读性强,易于理解。”