Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Спираль из массива данных (https://javascript.ru/forum/misc/63380-spiral-iz-massiva-dannykh.html)

studyuser 04.06.2016 04:02

Спираль из массива данных
 
Есть массив чисел с переменной длинной и значениями.

Например такой: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

Как сделать вывод по спирали чтобы получилось чтото подобное?
1 10 9
2 11 8
3 12 7
4 5 6

Т.е вниз - вправо - вверх - влево, и по новой. Размер матрицы тоже будет различный в зависимости от длинны массива

рони 04.06.2016 10:46

Цитата:

Сообщение от studyuser
Размер матрицы тоже будет различный в зависимости от длинны массива

алгоритм этой зависимости где?

studyuser 04.06.2016 12:13

Цитата:

Сообщение от рони (Сообщение 418465)
алгоритм этой зависимости где?

Есть функция по вычислению числа фибаначи, которая возвращает массив значений. Количество значений зависит от числа которое введено в инпут.

Html:
<input type="text" value="" id="userInput"/>
 <button id="submitBtn" class="go">Go!</button>


javascript:
function fibo(n) {
        var f = [];
        for (var c = 0; c < n; ++c) {
            f.push((c < 2) ? c : f[c - 1] + f[c - 2]);
        }
        return f;
    }

function Fibonacci() {
         var inputValue = document.getElementById("userInput").value;

            var fibArray = fibo(inputValue);
            //console.log(fibArray);
            //alert(fibArray);
}
document.getElementById("submitBtn").addEventListener("click", Fibonacci);



Например вводим в форму число:
11 получаем [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
25 - [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368]

Получется для любого полученного массива нужно как то сделать квадратную матрицу и завернуть змейкой к центру, начиная вниз и вправо.

рони 04.06.2016 13:57

studyuser,
нет алгоритма по прежнему, как строить вашу матрицу и фибаначи тут не причём, есть массив определённой длины, из него надо получить нечто, как строить это нечто неизвестно почему так
Цитата:

Сообщение от studyuser
1 10 9
2 11 8
3 12 7
4 5 6

а не так например
1 10 9 8
2 11 12 7
3 4 5 6
а если 11 то как будет а если 3 или 2 или 1 или 19?


Часовой пояс GMT +3, время: 08:56.