Это способ обхода массива линейным способом и преобразования из линейного индекса в двумерные индексы в массив. Если у вас есть массив 3х3, у вас есть 9 ячеек. В основной строке (создайте линейные индексы, проходя по строкам), пронумерованные 0-8, линейный индекс будет выглядеть следующим образом:
0 1 2
3 4 5
6 7 8
Двумерные индексы будут:
(0,0) (0,1) (0,2)
(1,0) (1,1) (1,2)
(2,0) (2,1) (2,2)
Хитрость в том, что mid / n - это строка, а mid% n - это столбец. Проверка всего массива означает проверку всех 9 элементов. 4/3 это 1, середина. 4% 3 тоже 1, опять же середина. Это зависит от знания того, что / - целочисленное деление, а% - мод, или остаток после целочисленного деления.
Я думаю, что это крутая проблема, потому что он использует оба вида деления и способ создания 2d матриц. одномерной памяти.