C语言---计算n的阶乘
阶乘的概念:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,且0的阶乘为1,自然数n的阶乘写作n! 。
任何大于等于1 的自然数n 阶乘表示方法:
n!=1×2×3×…×(n-1)×n 或 n!=n×(n-1)!
0!=1
1! = 1
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6
…
n! = n * (n-1) *… * 2 * 1
第一种:用递归的方法计算(函数调自己)
//递归
int fun(int n)
{
if (n > 1)//限制条件
{
return n * fun(n - 1);
}
else//0 ,1的阶乘
return 1;
}
int main()
{
int n = 0;
scanf("%d", &n);
int a=fun(n);
printf("%d ", a);
return 0;
}
第二种:用非递归的方法计算
int main()
{
int n = 0;
int sum = 1;
int i = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum *= i;//sum=sum*i
}
printf("%d\n", sum);
return 0;
}