我有这些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