这似乎不是一项艰巨的任务,但我无法解决它。这里有必要对 tstRec1() 循环进行递归(会有未知数) 我尝试在 tstRec2() 中进行。但尚不清楚如何以与 tstRec1() 相同的顺序进行添加:
List<int> poh = new List<int>();
List<int> poh2 = new List<int>();
public void startTest()
{
tstRec2(2, 2);
tstRec1();
}
public void tstRec1()
{
for (int i = 0; i < 2; i++)
{
for (int u = 0; u < 2; u++)
{
for (int s = 0; s < 2; s++)
{
poh.Add(i);
poh.Add(u);
poh.Add(s);
}
}
}
}
public void tstRec2(int countZikls, int counter, int lvl = 0, int transport = 0)
{
for (int i = 0; i < counter; i++)
{
if (lvl > countZikls)
{
break;
}
else if (lvl == countZikls)
{
poh2.Add(i);
}
else
{
tstRec2(countZikls, counter, lvl+1, i);
}
}
}
结果不知何故
控制台输出
事实上,这个任务类似于数字系统的技巧:生成所有数字,其中
maxDepth是数字的长度,count是数字系统的基数。在您的情况下,您只需将这些数字中的所有数字添加到列表中。其实解决办法是这样的:轻松简单地完成其余的除法。
与控制台的输出完全相同。