我正在尝试编写一个简单的递归函数来计算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;
}