Задача на собеседовании была:
Нужно написать функцию, которая создаст двумерный массив 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 "
"; }
Комментариев нет:
Отправить комментарий