用c语言编写编写函数计算N!调动函数计算下式的值:S=1+1/(1+4!)+1/(1+4!+7!)+…+1/(1+4!+7!+…+19!)
时间: 2023-09-11 12:09:04 浏览: 119
以下是用C语言编写计算N!的函数和计算S的程序:
```c
#include <stdio.h>
// 计算阶乘的函数
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
double S = 1.0;
int denominator = 1;
for (int i = 1; i <= 5; i++) {
denominator *= factorial(3 * i - 2);
S += 1.0 / denominator;
}
printf("S = %lf\n", S);
return 0;
}
```
程序中,计算N!的函数 `factorial` 采用了简单的循环实现。计算S的主程序中,使用了一个变量 `denominator` 来记录分母的值,每次循环都乘上当前分母的值,这样就不需要重新计算分母的阶乘了。循环执行 5 次,计算出 S 的值,并输出到控制台。
相关问题
编写C语言函数计算N!,调用该函数计算下式的值: 变量 S=1+1/(1+4!)+1/(1+4!+7!)+···+1/(1+4!+7!+…+19!)
以下是C语言函数计算N!的代码:
```c
int fac(int n) //阶乘函数
{
int i = 0;
int y = 1; //用来存返回值
if (0 == n || 1 == n) {
return 1;
} else {
for (i = 2; i <= n; i++) {
y *= i;
}
return y;
}
}
```
以下是调用该函数计算S的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int fac(int n) //阶乘函数
{
int i = 0;
int y = 1; //用来存返回值
if (0 == n || 1 == n) {
return 1;
} else {
for (i = 2; i <= n; i++) {
y *= i;
}
return y;
}
}
double sum(int n) //求和函数
{
int i = 0; //循环变量
double sum = 0; //和
int temp = 1; //用来存储1+4!+7!+...+19!
for (i = 1; i <= n; i++) {
temp += fac(3 * i - 2); //计算1+4!+7!+...+19!
sum += 1.0 / fac(temp); //计算1/(1+4!+7!+...+19!)
}
return sum;
}
int main()
{
int n = 0;
printf("请输入n:>");
scanf("%d", &n);
printf("sum = %lf\n", sum(n));
system("pause");
return 0;
}
```
编写C语言函数计算N!,调用该函数计算下式的值: 变量 S=1+1/(1+4!)+1/(1+4!+7!)+···+1/(1+4!+7!+…+19!)
以下是C语言函数计算N!的代码和调用该函数计算S的代码:
```c
#include <stdio.h>
int fac(int n) // 阶乘函数
{
int i = 0;
int y = 1; // 用来存返回值
if (0 == n || 1 == n) {
return 1;
} else {
for (i = 2; i <= n; i++) {
y *= i;
}
return y;
}
}
double calc_S() // 计算S的函数
{
int i = 0, j = 0; // 循环变量
double S = 0; // 和
for (i = 0; i < 5; i++) { // 一共有5项
int n = 1 + i * 3; // 每一项的n
int f = fac(n); // 每一项的n!
int denominator = 1; // 每一项的分母
for (j = i; j >= 0; j--) { // 计算每一项的分母
denominator += 3 * j;
}
S += 1.0 / (denominator * f); // 计算每一项的值并加到和上
}
return S;
}
int main()
{
printf("S = %lf\n", calc_S());
return 0;
}
```
阅读全文