用c语言编程序, 求和S=1!+2!+3!+...+20!
时间: 2023-11-21 12:05:27 浏览: 110
以下是C语言编写的程序,用于计算S=1!+2!+3!+...+20!的值:
```c
#include <stdio.h>
int main() {
int n = 20; // 求和的上限
long long sum = 0; // 防止数据溢出,使用long long类型
long long fac = 1; // 阶乘
for (int i = 1; i <= n; i++) {
fac *= i; // 计算i的阶乘
sum += fac; // 累加阶乘
}
printf("S = %lld\n", sum); // 输出结果
return 0;
}
```
相关问题
用c语言编写一个程序,计算s=1!+(1+2)!+(1+2+3)!+...+(1+2+3+...+n)!
以下是用C语言编写的程序,计算s=1!+(1+2)!+(1+2+3)!+...+(1+2+3+...+n)!:
```c
#include <stdio.h>
int main() {
int n, i, j, m = 1, sum = 0;
printf("请输入n的值:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
m = 1;
for (j = 1; j <= i; j++) {
m *= j;
}
sum += m;
}
printf("s = %d\n", sum);
return 0;
}
```
程序的思路是:外层循环控制求和的项数,内层循环计算每一项的阶乘。在内层循环中,变量`m`用于存储当前项的阶乘,每次循环都将`m`乘上当前的循环变量`j`,最终得到当前项的阶乘。在外层循环中,将每一项的阶乘加到变量`sum`中,最终得到总和`s`。
c语言循环求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。
以下是C语言循环求Sn=1!+2!+3!+4!+5!+…+n!之值的程序:
```
#include <stdio.h>
int main()
{
int n, i, j;
long int s = 0, t = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
t = 1;
for (j = 1; j <= i; j++) {
t *= j;
}
s += t;
}
printf("Sn = %ld\n", s);
return 0;
}
```
程序中使用了两个for循环语句,进行嵌套循环。外层的for循环用来控制求和的项数,内层的for循环用来计算阶乘。在内层循环中,使用变量t来保存当前项的阶乘值,然后将t加到变量s中,最终得到Sn的值。
--相关问题--:
1. 如何在C语言中计算一个数的平方根?
2. 如何在C语言中实现字符串的反转?
3. 如何在C语言中实现冒泡排序算