我的问题是如何将发布代码中的for循环转换为递归函数。我已经看了一些循环的转换,并且很难在递归函数中转换循环。
我正在学习c ++,我知道有一种方法可以将for循环转换为递归函数。在线文章中有一个涉及for循环的置换函数。我想让函数完全递归,但我不知道如何开始。
void RecPermute(string soFar, string rest)
{
if (rest.empty()) {
cout << soFar << endl;
} else {
for (int i = 0; i < rest.length(); i++) {
string remaining = rest.substr(0, i) + rest.substr(i+1);
RecPermute(soFar + rest[i], remaining);
}
}
这是文章的链接:https://see.stanford.edu/materials/icspacs106b/H19-RecBacktrackExamples.pdf