【发布时间】:2020-06-22 19:54:57
【问题描述】:
这是我的求和递归函数代码。该函数运行良好,但是当我在 main 方法中使用 for 循环以给出所有总和直到 10 时,系统停止工作,我对此没有任何解释。当我移除 for 循环时,系统再次完全正常。我得到的错误如下: Thread 1: EXC_BAD_ACCESS (code=2, address
#include <iostream>
using namespace std;
int summ(int x) {
if(x == 1)
{
return 1;
}
else {
return summ(x - 1) + x;
}
}
int main()
{
int const n = 10;
for(int i = 0; i < n; i++)
{
cout << summ(i) << " " << endl;
}
return 0;
}
【问题讨论】:
-
该功能运行良好 - 用于什么输入?请注意,当
x <= 0时,您的函数将永远递归(或至少直到x一直循环)。也许summ的停止条件应该是if(x <= 1)? -
尝试将
int i = 0;更改为int i = 1; -
Arthur:这仍然被列为未回答的问题。没有任何答案可以帮助您解决问题吗?
标签: c++ function for-loop recursion sum