我已經搜索並發現了類似的問題,但他們都似乎不適合我的。基本上,我需要編寫一個遞歸函數,它嵌套一個循環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