(1)计算n的阶乘
//计算n的阶乘
int main()
{
int i = 0;
int n = 0;
int result = 1;
printf("请输入数字n,计算他的阶乘:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
result*=i; //result=result * i
}
printf("%d\n", result);
return 0;
}
(2)计算 1!+2!+3!+……+10!
//计算 1!+2!+3!+……+10!
int main()
{
int i = 0;
int n = 0;
int result = 1;
int num = 0;
for (i = 1; i <= 3; i++) //阶乘求和
{
result = 1; //计算n的阶乘之前,把result初始为1
for (n = 1; n <= i; n++) //输出各自的阶乘
{
result *= n;
}
num += result;
}
printf("%d",num);
return 0;
}
使用数学知识优化代码:
4!= 3!*4
5!= 4!*5
通过上述的数学知识可知,一个数字的阶乘就是上一个数字的阶乘*数字本身
int main()
{
int i = 0;
int ret = 1;
int sum = 0;
for (i = 1; i <= 3; i++) //1!+2!+3!= 1+2+6 = 9
{ //2!+ 3! = 3 + 6 = 9
ret *= i; //ret会保留上一个的阶乘进行相乘
sum += ret;
}
printf("%d\n",sum);
return 0;
}