1、计算n的阶乘。
#include<stdio.h>
//计算n的阶乘
int main()
{
int i = 0;
int n = 0;
int ret = 1;
printf("请输入要求阶乘的数:");
scanf("%d", &n);
for (i = 1; i <=n; i++)
{
ret= ret* i;
}
printf("阶乘为:%d", ret);
return 0;
}
计算结果:
题目2、计算: 1!+2!+...+10!(阶乘求和)
下面提供两种算法,被注释掉的是常规算法,未被注释掉的是简便算法
其中ret*=n;意思是ret=ret*n,而ret等于前一个数的阶乘,
注意的要点是常规算法中将ret初始化为1
#include<stdio.h>
//计算1!+2!+..+10!
int main()
{
int i = 0;
int n = 0;
int ret = 1;
int sum = 0;
//for (n = 1; n <= 10; n++)
//{
// ret = 1;//计算n的阶乘之前,把ret初始化为1
// for (i = 1; i <= n; i++)
// {
// ret *= i;
// }
// sum += ret;
//}
//
//
//简化算法:因为3!=2!*3以此类推
for (n = 1; n <=10; n++)
{
ret *= n;
sum = ret + sum;
}
printf("阶乘之和为:%d", sum);
return 0;
}
执行结果: