在本篇文章中,我们主要是解决两个问题:
- 计算n的阶乘
- 计算1!+2!+3!+4!+5!+......n!
目录
一、计算n的阶乘
1.1问题分析
我们要计算n的阶乘,首先要产生1到n的数字,然后将他们累乘到一起。这时我们就要写一个循环,产生1到n的数字,然后累乘。
1.2代码实现
1.2.1使用for循环
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
int n = 0;
int ret = 1;
scanf("%d", &n);
for (i = 1 ; i <= n; i++)
{
ret = ret * i;
}
printf("%d\n", ret);
return 0;
}
1.2.2使用while循环
//方法二使用while循环
int main()
{
int i = 1;
int n = 0;
int ret = 1;
scanf("%d", &n);
while (i <= n)
{
ret = i * ret;
i++;
}
printf("%d\n", ret);
return 0;
}
二、计算1!+2!+3!+4!+5!+......n!
1.1 代码分析
在上述题目中,我们计算了n的阶乘,在这里我们是要将1到n的阶乘累加起来,那么就又需要一个循环
1.2 代码实现
//计算1!+2!+3!......10!
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int j = 0;
int i = 0;
int n = 0;
scanf("%d", &n);
int sum = 0;
int ret = 1;
for (j = 1; j <= n; j++)
{
ret = 1;
for (i = 1; i <= j; i++)
{
ret = ret * i;
}
sum = sum + ret;
}
printf("%d\n", sum);
return 0;
}
或者
//方法二
int main()
{
int i = 0;
int n = 0;
int sum = 0;
int ret = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
ret = ret * i;
sum = sum + ret;
}
printf("%d\n", sum);
return 0;
}