我试图找出一种简单的方法来处理动态嵌套循环级别。考虑以下带有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...
}
}