C语言编程递归求和问题

2025-04-06 18:31:47
推荐回答(1个)
回答1:

判断应该这么写,因为是互斥条件

#include 
float sum(int n)
{
    float s;

    if(n==1)
        s=1;
    else if(n%2==1)
        s=sum(n-1)-1.0/n;
    else if(n%2==0)
        s=sum(n-1)+1.0/n;

    return (s);
}

int main(int argc, char *argv[])
{
    int n;
    float s;

    scanf("%d",&n);

    s=sum(n);

    printf("%f\n",s);

    return 0;
}