例如,我想枚举范围中的所有数组 [0,0,0,0] ~ [3,4,5,6]
.
我可以通过循环访问整个可能的情况,但是当我尝试递归实现它时,我的大脑炸了。
我知道我自己也是一种无用的问题,但很好奇。
如果您只想访问每个州一次,那么使用循环会更好、更容易。执行递归版本的一种方法是这样。
bool checkArray(int a, int b, int c, int d) {
if (d > 6) {
d = 0;
++c;
}
if (c > 5) {
c = 0;
++b;
}
if (b > 4) {
b = 0;
++a;
}
if (a > 3)
return false;
if (array[a][b][c][d] == something)
return true;
return checkArray(a,b,c,d+1);
}