递归函数用于计算 n 个数字之和的意外输出



我正在尝试编写一个简单的递归函数来计算n数字的总和。所以,我写了下面的代码,它运行良好,但是当我尝试在递归函数中打印sum时,它会打印(在主函数处(一个随机数。

int SumRec(int n, int sum)
{
    sum+=n;
    if(n==1)
        return sum;
    else
        SumRec(n-1,sum);
    cout<<sum<<endl;
}
int main()
{
    cout<<SumRec(2,0)<<endl;
    return 0;
}

您应该确保 SumRec 返回一个整数值,只要您在声明它时承诺。我看到如果n == 1它会返回sum但除此之外没有!所以你应该让它看起来像:

int SumRec(int n, int sum){
    sum += n;
    if(n == 1)
        return sum;
    else
        sum = SumRec(n - 1, sum);
    cout << sum << endl;
    // when done from recursion i should return a value as i promised
    return sum;   
}

最新更新