我需要将一个二维数组(其大小由用户指定)根据用户输入的数量分割成子数组。我编写的代码对大多数情况都有效,但有些情况需要帮忙。
我通过获取输入数字的平方根来实现这一点。例如: 如果用户插入[10, 10, 9],则表示这是一个大小为10 * 10,有9个子数组的数组。获取9的平方根很好用,因为它得到了3。 如果用户插入[8, 6, 6],则获取6的平方根并将其向上取整到最长边(即3),并将其向下取整到最短边(即2)。因此,3 * 2 = 6。这也很好用。
然后有一个像8这样的情况。8的平方根是3和2。因此,该数组被分成6个子数组。是否有另一种方法来找到像8、14这样的数字的更好的分区方法?或者是否有一种找到这些数字的最优分配的方法(例如2 * 4 = 8,2 * 7 = 14)?
我通过获取输入数字的平方根来实现这一点。例如: 如果用户插入[10, 10, 9],则表示这是一个大小为10 * 10,有9个子数组的数组。获取9的平方根很好用,因为它得到了3。 如果用户插入[8, 6, 6],则获取6的平方根并将其向上取整到最长边(即3),并将其向下取整到最短边(即2)。因此,3 * 2 = 6。这也很好用。
然后有一个像8这样的情况。8的平方根是3和2。因此,该数组被分成6个子数组。是否有另一种方法来找到像8、14这样的数字的更好的分区方法?或者是否有一种找到这些数字的最优分配的方法(例如2 * 4 = 8,2 * 7 = 14)?