Существует простое рекурсивное решение вашей проблемы, которое является примером типа грубой силы, называемой backtracking (google that).
Рекурсивная функция (скажем, fill_next) находит следующую ячейку с неизвестным значением. Если такой ячейки нет, она проверяет квадрат, чтобы увидеть, соответствует ли он требованиям (суммы правильны), и если это так печатает квадрат в качестве решения; он возвращается. Если есть ячейка с неизвестным значением, она зацикливается, пробуя каждое из значений от 0 до 99, в свою очередь, для этой ячейки, а затем вызывает себя рекурсивно, чтобы заполнить следующую неизвестную ячейку.
Как добраться до следующей ячейки с неизвестным значением: вы можете просто перейти к find_next номер следующей ячейки, чтобы начать смотреть; вы можете начать все это, вызвав fill_next (0). Число клеток от 0 до 8, так как у вас есть 9 ячеек. Если вы храните квадрат в 2D-массиве, просто используйте num% 3 и num/3 в качестве индексов.
Это было бы намного проще описать, просто предоставив вам несколько строк кода, которые требуется, но вы сказали, что не хотите этого.
решить, какую проблему? –
Это проблема магического квадрата? – John
Как здорово это сделать вопрос, не зная, как это происходит? – stacker