使用递归计算一个数的阶乘的 C++ 程序
要理解此示例,您应该具备以下 C++ 编程 主题的知识:
该程序从用户那里获取一个正整数并计算该数字的阶乘。假设,然后用户输入 6,
阶乘将等于 1*2*3*4*5*6 = 720
在此示例中,您将学习使用递归函数查找数字的阶乘。
访问此页面以了解如何 使用循环来计算阶乘。
示例:使用递归计算阶乘
#include<iostream>
using namespace std;
int factorial(int n);
int main()
{
int n;
cout << "Enter a positive integer: ";
cin >> n;
cout << "Factorial of " << n << " = " << factorial(n);
return 0;
}
int factorial(int n)
{
if(n > 1)
return n * factorial(n - 1);
else
return 1;
}
输出
Enter an positive integer: 6
Factorial of 6 = 720
在上面的程序中,假设用户输入一个数字 6
。这个数字被传递给 factorial()
函数。
在此函数中,6
乘以 (6 - 1 = 5)
的阶乘。为此,再次将数字 5
传递给 factorial()
函数。
同样,在下一次迭代中,5
乘以 (5 - 1 = 4)
的阶乘。并且,4
被传递给 factorial()
函数。
这一直持续到值达到 1
并且函数返回 1
。
现在,每个函数返回值来计算 1 * 2 * 3 * 4 * 5 * 6 = 720
,然后返回给 main()
函数。