我正在尝试编写一个简单的递归函数来计算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;
}
答案 0 :(得分:3)
您应确保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;
}