c语言利用函数的递归调用求解 s=1!+2!+3!+4!+……+n!(不用for循环)
时间: 2023-08-04 21:06:21 浏览: 88
C语言实现求1+2+3+……+100的和,要求分别用while、do while、for循环实现。.txt
可以使用递归函数来求解阶乘和。先定义一个函数用来计算阶乘,然后在函数中调用自身来实现递归,最后在主函数中调用这个递归函数来求解阶乘和。
以下是示例代码:
```c
#include <stdio.h>
// 递归函数用来计算阶乘
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n, i, s = 0;
printf("请输入求和的数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
s += factorial(i);
}
printf("s = %d\n", s);
return 0;
}
```
在上面的代码中,factorial 函数用来计算阶乘,如果 n 等于 1,返回 1,否则返回 n * factorial(n - 1)。在主函数中,使用 for 循环来求解阶乘和,将每次计算的阶乘加到 s 变量中,最后输出 s 的值。
阅读全文