如何将长度划分为与提醒相等的部分?

时间:2015-11-02 20:38:55

标签: java algorithm

我有一系列方框:

class Box {
    int x1, y1, x2, y2;
}

假设我们需要创建一个盒子表。

Box[][] table;

我知道盒子的大小和宽度,以及桌子的高度。这是我建表的方法。

public Box[][] table(int boxSize, int xBound, int yBound) {
    Box[][] boxes = new Box[xBound / boxSize][xBound / boxSize];
    for (int x = 0; x < xBound; x += boxSize) {
        for (int y = 0; y < yBound; y += boxSize) {
            boxes[x % xBound / boxSize][y % yBound / boxSize] = new Box(x, y, x + boxSize, y + boxSize);
        }
    }
    return boxes;
}

但问题是reminder。如果我们需要将表格宽度设置为24,将高度设置为22并将框大小设置为5,那么我们得到ArrayIndexOutOfBoundsException。如果存在提醒,我想为它创建一个小方框并将其添加到表中。

[0-5, 0-5]   | [5-10, 0-5] | [10-15, 0-5] | [15-20, 0-5] | [20-24, 0-5]
...
[0-5, 20-22] | ...

我该怎么做?

1 个答案:

答案 0 :(得分:1)

设置如下的方框数:

Box[][] boxes = new Box[(xBound - 1) / boxSize + 1][(yBound - 1) / boxSize + 1];

然后,当您创建每个框时,请检查x + boxSize是否不大于xBoundy也是如此。