一. 循环法
根据阶乘的计算方法:n!= 1 * 2 * 3*…*n,我们在一个for循环完成 n 次乘法运算。注意因为是连乘,最终阶乘结果可能会非常大所以我们在Fac
函数中用 long long 类型的变量来记录阶乘的结果。
#include<stdio.h>
long long Fac(int n)
{
int i = 0;
long long ret = 1;
for (i = 1; i <= n; i++)
{
ret *= i;
}
return ret;
}
int main()
{
int num = 0;
scanf("%d", &num);
printf("%lld\n", Fac(num));
return 0;
}
二. 递归法
阶乘规律:当 n=1 时,n!=1 ; 当 n>1 时,n! = n*(n-1)!。利用递归得到最终结果。
#include<stdio.h>
long long Fac(int n)
{
if (n == 1)
return 1;
else
return n * Fac(n-1);
}
int main()
{
int num = 0;
scanf("%d", &num);
printf("%lld\n", Fac(num));
return 0;
}
运行结果: