c语言程序题.编写程序计算调和级数的前N项和.要求结果是一个准确的分数A/B形式.H=1/1+1/2+1/3+……+1/n
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 19:42:42
![c语言程序题.编写程序计算调和级数的前N项和.要求结果是一个准确的分数A/B形式.H=1/1+1/2+1/3+……+1/n](/uploads/image/z/7134379-43-9.jpg?t=c%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E9%A2%98.%E7%BC%96%E5%86%99%E7%A8%8B%E5%BA%8F%E8%AE%A1%E7%AE%97%E8%B0%83%E5%92%8C%E7%BA%A7%E6%95%B0%E7%9A%84%E5%89%8DN%E9%A1%B9%E5%92%8C.%E8%A6%81%E6%B1%82%E7%BB%93%E6%9E%9C%E6%98%AF%E4%B8%80%E4%B8%AA%E5%87%86%E7%A1%AE%E7%9A%84%E5%88%86%E6%95%B0A%2FB%E5%BD%A2%E5%BC%8F.H%3D1%2F1%2B1%2F2%2B1%2F3%2B%E2%80%A6%E2%80%A6%2B1%2Fn)
c语言程序题.编写程序计算调和级数的前N项和.要求结果是一个准确的分数A/B形式.H=1/1+1/2+1/3+……+1/n
c语言程序题.编写程序计算调和级数的前N项和.要求结果是一个准确的分数A/B形式.
H=1/1+1/2+1/3+……+1/n
c语言程序题.编写程序计算调和级数的前N项和.要求结果是一个准确的分数A/B形式.H=1/1+1/2+1/3+……+1/n
#include <stdio.h>
long u, v;
void addrat(int, int);
void lowterm();
int main()
{
int n, nterm;
printf("请输入项数:");
scanf("%d", &n);
if (n<=0)
printf("输入错误!\n");
else if(n==1)
printf("1/1\n");
else
{
u = 1;
v = 1;
for (nterm=2; nterm<=n; nterm++)
{
addrat(1, nterm);
lowterm();
printf("%d/%d\n", u, v);
}
}
return 0;
}
void addrat(int a, int b)
{
u = u*b + a*v;
v *= b;
}
void lowterm()
{
long numcopy, dencopy, remainder;
numcopy = u;
dencopy = v;
while(dencopy!=0)
{
remainder = numcopy%dencopy;
numcopy=dencopy;
dencopy=remainder;
}
if(numcopy>1)
{
u /= numcopy;
v /= numcopy;
}
}