c语言程序题.编写程序计算调和级数的前N项和.要求结果是一个准确的分数A/B形式.H=1/1+1/2+1/3+……+1/n

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 18:47:03
c语言程序题.编写程序计算调和级数的前N项和.要求结果是一个准确的分数A/B形式.H=1/1+1/2+1/3+……+1/n
xVYo@+mQ|&qCJ< J PpJR+Q*$D)}/nڸ\/)̎vvvF/n+}l3`ep]0x" ~h~Zzu|9xn+{92ds<+AŠG7@2PR1)\W1o/*7zfuTyyELʹkgLgTޭإZJZ且peX׬BY 腼$\ɐtI @WE$(/^R Ҽ UPy 斍qb.785I DQU rALqzu_Pqr]O3-z.n*~aa4xzyPZt!lvSD (e vȤ}+GoѯGqmb{S$[4PJi`%\{7zz%c(bFRXXIќ^cr_t-ҌVRۏZa\8ȔƦQΝc^ h6G|.d}v ɶgH&m'ufBuZe!5=KШ.h@3nnf OG=%HHئH]BPZ4Zmcm!&;,o.Ǐ

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;
    }
}