【发布时间】:2018-01-31 13:28:46
【问题描述】:
我无法创建一个(递归)函数来打印多维表的所有可能索引。
我得到了关于多维数组的信息。
示例:
int[]{6,6} 将是具有 6x6 = 36 个字段的二维表,因此结果将是 [0,0],[0,1],[1,1],[1,2],[2,2]... 等等。
另一个示例:int[]{2,2,2} 将是具有 8 个可能索引的 3 维表:[0,0,0],[0,0,1],[0,1,1]... 等等
我正在尝试在 Java 7 中执行此操作。
编辑:根据要求,我到目前为止得到了什么。代码正在产生 OutOfBound 异常。
loop(new int[2], new int[]{6, 6}, 0);
private void loop(int[] index, int[] dimensionSizes, int dimensionIndex) {
if (index[dimensionIndex] < dimensionSizes[dimensionIndex] && dimensionIndex < dimensionSizes.length) {
System.out.println(Arrays.toString(index));
index[dimensionIndex] = index[dimensionIndex] + 1;
if (index[dimensionIndex] < dimensionSizes[dimensionIndex]) {
loop(index, dimensionSizes, dimensionIndex);
} else {
loop(index, dimensionSizes, dimensionIndex + 1);
}
}
}
【问题讨论】:
-
到目前为止你尝试了什么?
标签: java arrays recursion java-7 dimensions