用C ++程序查找阶乘
非负整数n的阶乘是所有小于或等于n的正整数的乘积。
例如:5的阶乘为120。
5! = 5 * 4 * 3 * 2 *15! = 120
整数的阶乘可以使用递归程序或非递归程序找到。两者的示例如下。
使用非递归程序的阶乘
for循环可用于查找数字的阶乘。使用以下程序对此进行了演示-
示例
#include <iostream>using namespace std;
int main() {
int n = 5, fact = 1, i;
for(i=1; i<=n; i++)
fact = fact * i;
cout<<"Factorial of "<<n<<" is "<<fact;
return 0;
}
输出结果
Factorial of 5 is 120
在上面的程序中,for循环从1到n。对于循环的每次迭代,事实都与i相乘。事实的最终值是从1到n的所有数字的乘积。使用以下代码段对此进行了演示。
for(i=1; i<=n; i++)fact = fact * i;
使用递归程序的阶乘
下面的程序演示了查找数字阶乘的递归程序。
示例
#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 = 5;
cout<<"Factorial of "<<n<<" is "<<fact(n);
return 0;
}
输出结果
Factorial of 5 is 120
在上面的程序中,该函数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);
}
以上是 用C ++程序查找阶乘 的全部内容, 来源链接: utcz.com/z/330973.html