我试图找出一种简单的方法来处理动态嵌套循环级别。考虑以下带有2个参数的函数:循环数和最大值。

void PrintLoop(int maxloop, int maxvalue)

PrintLoop(1,2);
// output
0
1

PrintLoop(2,2);
// output
0, 0
0, 1
1, 0
1, 1

PrintLoop(3,2);
// output
0, 0, 0
0, 0, 1
0, 1, 0
0, 1, 1
1, 0, 0
1, 0, 1
1, 1, 0
1, 1, 1

ETC...

有没有一种方法可以编写可以生成这种“动态嵌套循环”行为的函数?

谢谢你的帮助

最佳答案

是的,这是可能的,并且为了实现这一点,经常使用“recursion”的概念:

void PrintLoop(int maxloop, int maxvalue)
{
   if (maxloop<=0) return ;
   // print something here...
   for (int i=0;i<maxvalue;i++){
      PrintLoop(maxloop-1, maxvalue);
      // After Recursion do something here...
   }
}

09-09 20:14