我正在编写一个c ++程序,运行它后会出现此错误:
#include<iostream>
using namespace std;
void Step(int dis,int len,int wid, int l=0,int w=0){
if(dis==0)
cout<< l << " "<< w << endl;
Step(dis-wid,len,wid,l,w+1);
Step(dis-len,len,wid,l+1,w);
}
int main(){
Step(10,2,3);
return 0;
}
答案 0 :(得分:3)
每次调用Step
两次调用Step
,导致堆栈溢出。实际上,对Step
的第二次调用从未发生,因为Step
永远无法到达终点。
答案 1 :(得分:2)
Step()
永远不会结束。在if语句中添加return
,以便函数可以终止。