一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
为了防止数组越界也可以用long long 整型来代替int型。
非递归方法实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int Factorial(int n)
{
if (n < 0)
{
return -1;
}
else if(n==0)
{
return 1;
}
int sum = 1;
for (int i = 1; i <= n; ++i)
{
sum = sum * i;
}
return sum;
}
int main()
{
int x;
printf("请输入需要求阶乘的数:");
scanf("%d", &x);
int y = Factorial(x);
if (y>0)
{
printf("结果为:%d!\n", y);
}
else
{
printf("输入不合法!\n");
}
system("pause");
return 0;
}
实验结果:
递归实现:
#define _CRT_SECURE_NO_WARNINGS
#include <st