Страницы

Поиск по вопросам

понедельник, 4 февраля 2019 г.

Инициализация двумерного массива по спирали [закрыт]

Задача на собеседовании была: Нужно написать функцию, которая создаст двумерный массив NxN и заполнит его цифрами 1,2,..., NхN по кругу.
Для N = 3 должна получиться матрица:
1 2 3 8 9 4 7 6 5
Для N = 4 должна получиться матрица:
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7


Ответ

Что то вы все какие-то длинные. Да и комментарии явно не по делу. Рекурсия друзья, просто рекурсия.
$w=5; $h=5; //Сюда размер матрицы function s($w,$h,$x,$y){return $y ? $w + s($h - 1, $w, $y - 1, $w - $x - 1) : $x;} for ($i = 0; $i < $h; $i++) { for ($j = 0; $j < $w; $j++) printf("%4d",s($w, $h, $j, $i)); echo "
"; }

Комментариев нет:

Отправить комментарий