Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Числа Фибоначчи (https://javascript.ru/forum/misc/62116-chisla-fibonachchi.html)

Maine 25.03.2016 14:29

Числа Фибоначчи
 
Привет!
Можно ли вывести ряд чисел фибоначчи при условии, что задано максимальное число ряда. Вот что у меня получилось, но я не знаю, как правильно выразить условие в цикле:

function fibonacci(max) {
    var result = [0, 1];
    
        for (var i = 1; result[i] < max; i++) {
            result.push(result[i] + result[i - 1]);
        }
    

    console.log(result);
}

fibonacci(100);


Выводит следующий массив:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]

То есть цикл проверяет последнее число ряда и останавливается, когда оно больше max. Не понимаю, как сделать так, чтобы оно не вносило число больше max в массив.

destus 25.03.2016 14:39

function fibonacci(max) {
            var result = [0, 1],
                val;
            for (var i = 1; result[i] < max; i++) {
                val = result[i] + result[i - 1]
                val <= max && result.push(val);
            }
            console.log(result);
        }
        fibonacci(100);

Maine 25.03.2016 16:37

спасибо!
поняла

Maine 25.03.2016 17:26

тогда получается, что вот эта запись не имеет смысла?

result[i] < max

destus 25.03.2016 17:33

Maine,
Тогда условия выхода из цикла не будет. Можно так
function fibonacci(max) {
            var result = [0, 1],
                val;
            for (var i = 1; ; i++) {
                val = result[i] + result[i - 1]
                if (val <= max)
                    result.push(val);
                else break
            }
                console.log(result);
        }
        fibonacci(100);


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