用c语言求1!+2!+3!+...+n
时间: 2024-10-16 14:16:29 浏览: 54
这个问题可以使用循环和递归两种方法来解决。
方法1:循环实现
循环从1到n,每次计算当前数字的阶乘,并累加到总和中,最终得到1!+2!+3!+...+n!的结果。
C语言代码如下:
```c
#include <stdio.h>
int factorial(int num) {
int result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
int main() {
int n, sum = 0;
printf("请输入n的值:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
printf("1!+2!+3!+...+%d!的结果为:%d\n", n, sum);
return 0;
}
```
方法2:递归实现
递归函数会不断调用自身,直到满足退出条件为止。这里可以使用递归函数来计算阶乘,并在主函数中调用该函数来计算1!+2!+3!+...+n!的结果。
C语言代码如下:
```c
#include <stdio.h>
int factorial(int num) {
if (num == 0) { // 阶乘的退出条件
return 1;
} else {
return num * factorial(num - 1); // 递归调用自身
}
}
int main() {
int n, sum = 0;
printf("请输入n的值:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
printf("1!+2!+3!+...+%d!的结果为:%d\n", n, sum);
return 0;
}
```
阅读全文