07 ноября 2021
First task, JS
function snakeMatrix(n) {
/*создание массива размерности n*n */
let arr = new Array(n);
for (let i = 0; i < n ; i++)
arr[i] = new Array(n);
let line = [0, 0];//для хранения текущих координат
let n_line = 1;//для переключения между строкой и столбцом
let oper = [-1, 1];//для увеличения или уменьшения индексов
let n_oper = 1;//для переключения с + на -
let val = 0;//значение для инициализации элемента массива
let count_item = 0;//счетчик элементов
let count_line = 0;//счетчик линий
while(1) {
arr[ line[0] ][ line[1] ] = ++val;
if (++count_item > n - 1) {
++count_line % 2 && n-- || ( n_oper = +!n_oper );
count_item = 0;
n_line = +!n_line;
if (n < 1) break;
}
line[n_line] += oper[n_oper];
}
return arr;
}
console.log( snakeMatrix(5) );
Ответить
Пожаловаться