非负整数n的阶乘是所有小于或等于n的正整数的乘积。
例如:4的阶乘为24。
4! = 4 * 3 * 2 *1 4! = 24
整数的阶乘可以使用递归程序或迭代程序找到。
以下程序演示了一个递归程序,用于查找数字的阶乘-
#include <iostream> using namespace std; int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); } int main() { int n = 4; cout<<"Factorial of "<<n<<" is "<<fact(n); return 0; }
输出结果
Factorial of 4 is 24
在上面的程序中,该函数fact()
是递归函数。该main()
函数fact()
使用需要阶乘的数字进行调用。下面的代码片段对此进行了演示。
cout<<"Factorial of "<<n<<" is "<<fact(n);
如果该数字为0或1,则fact()
返回1。如果该数字为任意其他数字,fact()
则以值n-1递归调用自身。
使用以下代码段对此进行了演示。
int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); }