递归函数程序 - 计算一系列和的逻辑错误

时间:2015-09-17 04:12:18

标签: c++ recursion

我正在编写一个C ++程序来计算一系列的总和:

enter image description here

所以我写了一个递归函数:

double func(int n)
{
    if(n==1)
        return 1;
    else
        return pow(1/n, n) + func(n-1);
}

对于以下系列, 如果n1,则sum为:1 如果n2,则sum为:1.25n3时,sum1.3611

但上述代码执行时,会为1的所有值返回n。 有人请告诉我这背后的原因是什么?

1 个答案:

答案 0 :(得分:2)

因为n是一个整数,1/n将始终产生一个整数结果,因为编译器推断出1是一个整数。

然而,将其更改为1.0/n将产生双重结果。