以下是C语言程序,使用递归函数计算N!,并调用该函数求S=1+1/(1+4!)+1/(1+4!+7!)+…+1/(1+4!+7!+…19!)
时间: 2023-11-20 09:06:19 浏览: 115
```c
#include <stdio.h>
int factorial(int n) { // 定义递归函数计算n的阶乘
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n = 19; // 计算19的阶乘
int sum = 0;
double s = 0;
for (int i = 1; i <= n; i += 3) { // 每次加3计算一项
sum += factorial(i); // 计算分母
s += 1.0 / sum; // 计算分式
}
printf("%lf", s); // 输出结果
return 0;
}
```
--相关问题--:
1. 什么是递归函数?
2. 如何在C语言中使用循环结构
相关问题
c语言阶乘n!定义:n!=1(n=1);n!=n*(n-1)!(n>1) 设计求n!的递归函数,调用该函数求 S=1+1/1!+1/2!…+1/n!
以下是C语言求阶乘和S的例子:
```c
#include <stdio.h>
// 求n的阶乘
float fac(int n) {
if (n == 1 || n == 0) {
return 1;
}
return n * fac(n - 1);
}
// 求S
float get_S(int n) {
int i;
float s = 0;
for (i = 0; i <= n; i++) {
s += 1 / fac(i);
}
return s;
}
int main() {
int n = 5;
printf("%d! = %.0f\n", n, fac(n)); // 输出:5! = 120
printf("S = %f\n", get_S(n)); // 输出:S = 2.716667
return 0;
}
```
涉及求n的递归函数,调用该函数求 S=1+1/1!+1/2!+......1/n! C语言
以下是C语言中求S=1+1/1!+1/2!+......1/n!的代码,使用递归函数调用阶乘方法求和:
```c
#include <stdio.h>
int jie(int n) { // 定义递归函数求阶乘
if (n == 1) {
return 1;
} else {
return n * jie(n - 1);
}
}
int main() {
int n;
double sum = 0;
printf("请输入n的值:");
scanf("%d", &n);
if (n < 1 || n > 40) { // 判断n的范围是否合法
printf("请重新输入数据\n");
return 0;
}
for (int i = 0; i <= n; i++) { // 循环计算S的值
sum += 1.0 / jie(i);
}
printf("S的值为:%lf\n", sum);
return 0;
}
```
阅读全文