假设我有一个函数:
int recursive(int NbProducts, int NbPlates, int NbPositions)
{ //the following is a recursive function that will call itself 3 times
//code to be repeated goes here
recursive(int NbProducts, int NbPlates, int NbPositions);
}
我想不通的是如何让函数知道它在哪个递归数上,以及如何停止它。任何有效和聪明的方法来做到这一点?如果有帮助,我正在使用 boost 算法。
最佳答案
给它传一个参数,在函数执行前进行检查,如果迭代结束,返回结果,否则继续
int recursive(int NbProducts, int NbPlates, int NbPositions,int repeat)
{
repeat --;
if(repeat==0)
return result;
else
recursive(NbProducts, NbPlates, NbPositions, repeat);
}
如果你想让它重复3次,你只需要说
recursive(NbProducts, NbPlates, NbPositions, 3);
关于调用自身 N 次的 C++ 递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26630716/