1、需求:三种长度的元素,分别是4、8、12,每一行的长度是12,超过12就排到下一行,我们将这三种类型的多个元素打乱,然后找到这些元素对应的行和列。
如下图:
2、解决思路:
- 创建一个长度为4、8、12的三种类型的元素数组。
- 随机打乱数组中的元素顺序。
- 遍历数组,计算每个元素所在的行和列。
3、代码:
public static void main(String[] args) {
// 创建元素数组
List<Integer> elements = new ArrayList<>();
for (int i = 0; i < 4; i++) {
elements.add(4);
}
for (int i = 0; i < 8; i++) {
elements.add(8);
}
for (int i = 0; i < 12; i++) {
elements.add(12);
}
// 随机打乱数组顺序
Collections.shuffle(elements);
// 计算每个元素所在的行和列
int row = 1;
int col = 1;
int currentLength = 0;
for (int element : elements) {
if (currentLength + element > 12) {
row++;
col = 1;
currentLength = 0;
}
System.out.println("元素 " + element + " 在第 " + row + " 行,第 " + col + " 列");
col++;
currentLength += element;
}
}