一、什么是阶乘
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
二、阶乘 递归实现
1. 设计递归方程
由阶乘的定义 ( n ! = n ∗ ( n − 1 ) ∗ ( n − 2 ) ∗ ⋅ ⋅ ⋅ ∗ 1 ) (n! = n*(n-1)*(n-2)*···*1) (n!=n∗(n−1)∗(n−2)∗⋅⋅⋅∗1)可以明显看出其设计思路 f ( n ) = n ∗ f ( n − 1 ) f(n)=n*f(n-1) f(n)=n∗f(n−1)。
2. 确定边界条件
n n n为正整数,最小值为1,且 1 ! = 1 1!=1 1!=1,当进行到 n = 1 n=1 n=1时应控制程序跳出递归方程。
3. 编写程序代码
// 阶乘的递归实现算法
#include <iostream>
using namespace std;
int factorial(int n);
int main()
{
int num = 1;
cout << "请输入一个正整数,求其阶乘:";
cin >> num;
cout << "它的阶乘是:" << factorial(num) << endl;
return 0;
}
int factorial(int n)
{
if (n == 1)
return 1;
return n * factorial(n - 1);
}
4. 运行结果展示
*其它一些常见算法请参阅此链接文末目录
大家好呀!这是我第一次写博客呢~
今后还请多多关照哦^_^