编写函数计算N!,调用该函数计算下式的值: S= 1+1/(1+4! )+1/(1+ 4!+7!)+……+1/(1+4!+7!+……+19!) 【提示】定义函数long jc(int k)用于求阶乘分母的数据是一个公差为3的等差数列。
编写函数计算N!,调用该函数计算下式的值: S= 1+1/(1+4! )+1/(1+ 4!+7!)+……+1/(1+4!+7!+……+19!) 【提示】定义函数long jc(int k)用于求阶乘分母的数据是一个公差为3的等差数列。
供参考:
#include <stdio.h>
long jc(int k)
{
int i;
long s = 1;
for (i = 1; i <= k; i++)
s *= i;
return s;
}
int main()
{
int i;
double S = 0,t = 0;
for (i = 1; i <= 19; i += 3)
{
t += jc(i);
S += 1.0 / t;
}
printf("S=%f", S);
return 0;
}
#include <iostream>
using namespace std;
long jc(int k) // 求阶乘的函数
{
long f = 1;
for(int i = k; i >= 1; i -= 3)
f *= i;
return f;
}
int main()
{
double S = 0; // 存储结果
int n = 0; // 记录当前的分母
for(int i = 0; i <= 4; i++)
{
n += 3 * i; // 计算当前项的分母
S += 1.0 / (1 + jc(n)); // 计算当前项并累加到结果中
}
cout << "S = " << S << endl;
return 0;
}
定义了一个求阶乘的函数,函数名为jc,参数为一个整型数k,返回值是k!。在主函数中,我们先声明了两个变量,分别用来存储最终的结果S和当前项的分母n。在循环中,我们通过计算公差为3的等差数列得到当前项的分母n,然后计算出当前项的值并累加到S中