C语言编程求1!+2!+3!+......+20!。
时间: 2023-09-02 20:15:40 浏览: 51
以下是求1! 2! 3! ...... 20!的C语言代码:
```c
#include <stdio.h>
int main() {
int i, j, factorial = 1;
for(i = 1; i <= 20; i++) {
for(j = 1; j <= i; j++) {
factorial *= j;
}
printf("%d! = %d\n", i, factorial);
factorial = 1; // 重置阶乘变量
}
return 0;
}
```
这段代码使用了两个for循环,外层循环控制求阶乘的数,内层循环计算阶乘。在计算完每个数的阶乘后,将结果打印出来,并将阶乘变量重置为1,以备下一次计算。
相关问题
C语言编程求1!+2!+3!+...+20!的值
以下是C语言编程求1!+2!+3!+...+20!的值的代码实现:
```c
#include <stdio.h>
int main() {
int i = 0; //外循环
int j = 0; //内循环
int n = 20; //输入n
int ret = 1; //把每个数的阶乘计算后赋值给该变量,因为0乘任何数都为0,所以初始化为1。
int sum = 0; //外循环后将各个数的阶乘相加后赋值给该值,作为最终结果。
//计算1!+2!+3!+...+20!
for (i = 1; i <= n; i++) {
ret = 1;
for (j = 1; j <= i; j++) {
ret *= j;
}
sum += ret;
}
//输出结果
printf("1!+2!+3!+...+20!=%d\n", sum);
return 0;
}
```
C语言编程求1!+2!+...+10!
您可以使用循环和递归两种方法来解决这个问题。下面是使用循环的代码实现:
```c
#include <stdio.h>
int main() {
int i, j, fact;
long sum = 0;
for(i = 1; i <= 10; i++) {
fact = 1;
for(j = 1; j <= i; j++) {
fact *= j;
}
sum += fact;
}
printf("1! + 2! + ... + 10! = %ld\n", sum);
return 0;
}
```
输出结果为:
```
1! + 2! + ... + 10! = 4037913
```
使用递归实现的代码如下:
```c
#include <stdio.h>
long factorial(int n) {
if(n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int i;
long sum = 0;
for(i = 1; i <= 10; i++) {
sum += factorial(i);
}
printf("1! + 2! + ... + 10! = %ld\n", sum);
return 0;
}
```
输出结果也是:
```
1! + 2! + ... + 10! = 4037913
```