当条件满足时,我无法跳出这个 C++ 递归函数,我相信是因为 for 循环仍在继续。有没有办法一下子跳出整个事情(不仅仅是跳出 for 循环,而是同时完成递归)?将 set 设为字母表字母的字符集。它确实到达了输出 cout << run << endl;
的行,但它仍然没有终止程序。这是为什么?
bool printKString(char set[], string initial,
int n, int k, bool complete)
{
bool finished = false;
if (k == 0)
{
if(initial.substr(0, 5) == "abcde") {
cout << " - FOUND - " << initial << endl;
complete = true;
}
return complete;
}
for (int i = 0; i < n; i++)
{
string newPrefix;
newPrefix = prefix + set[i];
bool run = printKString(set, newPrefix, n, k - 1, complete);
if(run) {
cout << run << endl;
break;
}
}
}