我有這些for循環。C++冷凝嵌套for循環
// output all possible combinations
for (int i1 = 0; i1 <= 2; i1++)
{
for (int i2 = 0; i2 <= 2; i2++)
{
for (int i3 = 0; i3 <= 2; i3++)
{
for (int i4 = 0; i4 <= 2; i4++)
{
for (int i5 = 0; i5 <= 2; i5++)
{
for (int i6 = 0; i6 <= 2; i6++)
{
for (int i7 = 0; i7 <= 2; i7++)
{
//output created words to outFile
outFile
<< phoneLetters[n[0]][i1]<< phoneLetters[n[1]][i2]
<< phoneLetters[n[2]][i3]<< phoneLetters[n[3]][i4]
<< phoneLetters[n[4]][i5]<< phoneLetters[n[5]][i6]
<< phoneLetters[n[6]][i7]
<< " ";
if (++count % 9 == 0) // form rows
outFile << std::endl;
}
}
}
}
}
}
}
它看起來很糟糕,但我太過分了,知道從哪裏開始凝視它們。
有人可以給我一個或兩個指針,所以我可以使這個代碼有點整潔?
哇...這是一件藝術品... – Mysticial 2012-07-31 19:55:38
我想重寫這個,所以它使用盡可能少的循環 – frankV 2012-07-31 19:59:34
這將是相當微不足道的轉換成遞歸函數,其中每個遞歸調用積累下一個值,並且當您有足夠的值時,打印該數字。或者,保留一個運行計數器,並將其轉換爲基數3(或計算其基數3分量)。 – 2012-07-31 20:01:08