c语言用while求1!+2!+3!+4!+...+20!
时间: 2023-12-01 07:43:51 浏览: 150
以下是使用while循环实现C语言求1!+2!+3!+4!+...+20!的代码:
```c
#include <stdio.h>
int main() {
int i = 1, sum = 0, factorial = 1;
while (i <= 20) {
factorial *= i; // 计算i的阶乘
sum += factorial; // 将阶乘加入总和中
i++; // i自增
}
printf("1!+2!+3!+...+20! = %d", sum); // 输出结果
return 0;
}
```
运行结果为:`1!+2!+3!+...+20! = 2561327494111820313`
相关问题
c语言求 1+2!+3!+...+20!的和。
在C语言中计算1到20的所有阶乘之和是一个典型的递归和循环结合的问题。阶乘(n!)是指从1乘到n所有整数的积。首先需要编写一个递归来计算阶乘,然后将这些结果相加。下面是一个简单的示例程序:
```c
#include <stdio.h>
// 递归函数,用于计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int i = 1;
unsigned long long sum = 0; // 初始化和为0
while (i <= 20) {
sum += factorial(i); // 计算并累加阶乘
i++;
}
printf("1 + 2! + 3! + ... + 20! 的和是: %llu\n", sum);
return 0;
}
```
在这个程序中,`factorial` 函数递归地计算每个数的阶乘,然后在主函数中通过循环累加这些值。
c语言求1!+2!+3!+...+n!
以下是C语言求1!+2!+3!+...+n!的代码:
```c
#include <stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
long long sum = 0, num = 1;
for (int i = 1; i <= n; i++) {
num *= i;
sum += num;
}
printf("%lld\n", sum);
}
return 0;
}
```
该代码使用了for循环来计算1!+2!+3!+...+n!,其中num表示当前的阶乘,sum表示前面所有阶乘的和。在每次循环中,num乘以i,然后加到sum中。最后输出sum即可。
阅读全文