У меня довольно простой вопрос, я думаю.
У меня есть эта проблема, которую очень легко решить с помощью рекурсивной функции, но которую я не смог решить итеративно.
Предположим, у вас есть логическая матрица, например:
M
111011111110
110111111100
001111111101
100111111101
110011111001
111111110011
111111100111
111110001111
Я знаю, что это не обычная логическая матрица, но она полезна для моего примера.
Вы можете заметить, что там есть своего рода нулевые пути ...
Я хочу создать функцию, которая получает эту матрицу и точку, в которой хранится ноль, и которая преобразует каждый ноль в той же области в 2 (предположим, что матрица может хранить любое целое число, даже если оно изначально логическое)
(так же, как при рисовании зоны в Paint или любом графическом редакторе)
предположим, что я вызову функцию с этой матрицей M и координатой верхнего правого угла ноль, результат будет:
111011111112
110111111122
001111111121
100111111121
110011111221
111111112211
111111122111
111112221111
Ну, мой вопрос, как сделать это итеративно ...
надеюсь, я не слишком испортил это
Заранее спасибо!
Manuel
ps: Буду признателен, если бы вы могли показать функцию в C, S, Python или псевдокоде, пожалуйста: D