c语言求前20的阶乘的和
时间: 2023-11-06 18:07:01 浏览: 35
以下是使用 C 语言编写的求前20个数的阶乘和的程序:
```c
#include <stdio.h>
int main()
{
int i, j;
unsigned long long factorial, sum = 0;
for (i = 1; i <= 20; i++)
{
factorial = 1;
for (j = 1; j <= i; j++)
{
factorial *= j;
}
sum += factorial;
}
printf("前20个数的阶乘和为:%llu", sum);
return 0;
}
```
程序运行结果:
```
前20个数的阶乘和为:2561327494111820313
```
注意:由于阶乘的增长速度非常快,所以在计算过程中可能会出现溢出情况。为了避免这种情况,可以使用 unsigned long long 类型进行计算。
相关问题
c语言求n的阶乘想加
以下是C语言求n的阶乘想加的代码和解释:
```c
#include <stdio.h>
// 求n的阶乘的函数
int factor(int n){
int result=1;
for(int i=1;i<=n;i++){
result*=i;
}
return result;
}
int main(){
int sum=0;
int num=0;
printf("请输入你想求和的阶乘数:");
scanf("%d",&num);
for(int i=1;i<=num;i++){
sum+=factor(i);
}
printf("阶乘和为:%d\n",sum);
return 0;
}
```
代码解释:
1. 定义了一个函数`factor`,用于计算n的阶乘。
2. 在`main`函数中,定义了两个变量`sum`和`num`,分别用于存储阶乘和和用户输入的阶乘数。
3. 用户通过`scanf`函数输入想要求和的阶乘数。
4. 使用for循环语句,从1到用户输入的阶乘数,依次计算每个数的阶乘,并将结果累加到`sum`变量中。
5. 最后输出阶乘和。
c语言嵌套调用求阶乘的和
以下是使用嵌套调用实现求阶乘的和的C语言代码:
```
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int sumFactorial(int n) {
if (n == 1) {
return 1;
} else {
return factorial(n) + sumFactorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("1!+2!+...+%d!=%d\n", n, sumFactorial(n));
return 0;
}
```
首先定义了一个计算阶乘的函数`factorial()`,然后定义了一个计算阶乘和的函数`sumFactorial()`,其中`sumFactorial()`函数在计算n的阶乘和时会调用`factorial()`函数。
在`main()`函数中,先读入正整数n,然后调用`sumFactorial()`函数计算1!+2!+...+n!的值,并输出结果。