我已经搜索并发现了类似的问题,但他们都似乎不适合我的。基本上,我需要编写一个递归函数,它嵌套一个循环N次,并仅在最后一个循环中打印所有内容。如果你能找到解决问题的另一个解决方案,那会很好。与基于递归的N嵌套for循环有一个逻辑问题
0 = *
1 = +
2 = ABC
3 = DEF
...
8 = STU
9 = VWXYZ
这里是全码:http://pastebin.com/2YdQ693N
这里是硬编码的N = 3实施例:
//sout is a vector<string>
for(int i = 0; i < sout[0].size(); i++)
{
for(int j = 0; j < sout[1].size(); j++)
{
for(int k = 0; k < sout[2].size(); k++)
{
cout << sout[0][i] << sout[1][j] << sout[2][k] << endl;
}
}
}
该特定示例中的下面的输出(输入为 “123”) :
+AD
+AE
+AF
+BD
+BE
+BF
+CD
+CE
+CF
我来这里是类似于这样一个递归函数之前得到的最接近他重新:http://v2.cplusplus.com/forum/beginner/68434/但我无法让它为我的情况工作。
我所需要的索引在这种类型的顺序去:
000
001
002
010
011
012
020
021
022
除了长度必须是可变的(因此高度以及)。
这里是我的递归函数我到目前为止一直在努力:
void recurseLoop(const vector<string>& sout, int numLoops)
{
if(numLoops > 0)
{
for(int i = 0; i < sout[1].size(); i++)
{
//cout << i;
recurseLoop(sout, numLoops - 1);
}
}
else
{
//cout << endl;
return;
}
}
然而,结果是“我”给是非常难以理解的,我遇到了麻烦循环的正确结构/如果声明让这个工作。任何帮助表示赞赏!
你的意思是使用index [i]
user2859815
是的,是cource的。纠正。 – Walter