Чтобы разрезать прямоугольник на равные части, чтобы получить заданное количество квадратов, можно воспользоваться следующим подходом: 1
- Определить сторону квадрата s, которая должна быть максимально возможной и не оставлять остатков от прямоугольника. 1 Для этого нужно найти наибольший общий делитель сторон m и n (s = gcd(m, n)). 1
- Чтобы определить количество квадратов, на которые разрезан прямоугольник, нужно разделить площадь прямоугольника на площадь квадрата размера s. 1
Например, для прямоугольника со сторонами 4 и 9 клеток: 2
- Вычислить площадь прямоугольника и квадрата. 2 Например, Sпр. = 4 * 9 = 36, Sкв. = Sпр. = 36. 2
- Назначить каждой клетке длину стороны, равную единице. 2
- Сверху слева закрасить шесть клеток белым цветом и пронумеровать их от 1 до 6, а справа снизу заштриховать столько же ячеек чёрным с номерами от 7 до 12. 2
- На следующем этапе продолжить работать с белой краской во второй строке, а с чёрной — в третьей. 2 Как и в первом действии, проставить номера в клеточках. 2
- На следующем этапе не удастся закрасить по шесть клеток — только по три с каждой стороны. 2 То есть две строки белого цвета слева по три ячейки с номерами от 25 до 30, ещё две строки чёрного окраса справа — от 30 до 36. 2
- В итоге прямоугольник разделили на две конгруэнтные фигуры. 2 Остаётся лишь отрезать чёрное от белого, а потом совместить так, чтобы получился квадрат. 2
Для решения задачи можно использовать рекурсивную функцию подсчёта количества квадратов, на которые можно разрезать прямоугольник, если каждый раз отрезать квадрат максимальной площади. 3