Доброй ночи.
Решаю классическую задачу для обучения - нужно вывести массив в таком виде, размер массива задаётся:
1 2 4 7 10
3 5 8 11 13
6 9 12 14 15
Я так и не смог придумать алгоритм для решения задачки.
Пришёл к выводу, что первые три диагонали (считаем от левого верхнего угла) заполняются числами 1 - 6, и последние три диагонали имеют интервал [m*n][m*n - 6], так как в правом нижнем углу всегда последнее значение массива.
как получить элемент, который стоит предидущим на диагонали тоже не сложно - строка -1, столбец +1, исключая крайние строки и столбы.
А вот с "серединой" жуть. Я пытался вывести формулу первого ряда, но получалось не универсальное значение.
Я думаю, что если будет первый ряд, то дальнейшее заполнение не составляет труда.
Если бы массив был всегда квадратный, то проблем тоже не было бы, а так как он может быть какого угодно размера, то надо учесть сдвиги.
Мне мозгов не хватает, прошу помощи. Спасибо!