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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 11:02:21

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