mrg29

Зарегистрирован с 07.11.2021
Комментарии
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) );
Ответить