数独 - 根据行、列查找当前方格

ILo*_*ode 7 java sudoku

在此输入图像描述

根据上图中的坐标,我希望能够计算出所选单元格属于哪个以红色突出显示的“正方形”。

我正在解决一个数独难题,并​​且可以访问每个正方形的宽度以及单元格所在的行/列。

我在计算单元格所属的正方形的“编号”时遇到困难(它们从 1 开始,从左到右、从上到下递增),因此上面的正方形的编号为:

1|2
3|4

我该如何计算呢?任何建议,将不胜感激。要么是 Java 特定的方法,要么只是一个算法就可以了:)

lev*_*501 7

int numMajorRows = 2;
int numMajorCols = 2;  
int width = 2;

// assuming row and col also start at 1.  
int squareNumber(int row, int col) {
  int majorRow = (row-1) / width;  // zero based majorRow
  int majorCol = (col-1) / width;  // zero based majorCol
  return majorCol + majorRow * numMajorCols + 1;
}
Run Code Online (Sandbox Code Playgroud)