阶乘定义:一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,
并且 0 的阶乘为 1。自然数 n 的阶乘写作 n!。
方法一:
采用计算机赋值思维的方式求一个正整数的阶乘。就是2!=1!*1;3!=2!*3;4!=3!*4;依此类推,我们只要依次存储小于所求正整数的所有正整数阶乘,即可算出所求阶乘。
#include<stdio.h>
int main(){
int a=1,b=1,c,x,n;
printf("请输入您需要计算阶乘的正整数:");
scanf("%d",&n);
if(n!=0) //0的阶乘和1的阶乘一样,所以需要分开讨论
{
for(x=1;x<=n;x++)
{
c=a*b;
b=c;
a++;
}
printf("%d的阶乘是:%d",n,c);
}
else
{
printf("0的阶乘是:%d",1);
}
return 0;
}
方法二:
采用C语言的复合赋值运算符 *=。这条语句的作用是将变量 x与变量 i 相乘,并将乘积赋值回 factorial。
具体来说,x * = i; 等价于以下两步操作:
x = x * i;:将 factorial 的当前值与 i 相乘。
x= result;:将乘法的结果赋值回x。
#include <stdio.h>
int main()
{
int n, i;
unsigned long long x = 1;
printf("输入一个整数: ");
scanf("%d",&n);
if (n < 0)
printf("Error! 负数没有阶乘");
else
{
for(i=1; i<=n; ++i)
{
x *= i; // x = x*i;
}
printf("%d! = %llu", n, x);
}
return 0;
}