Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2016, 14:29
Интересующийся
Отправить личное сообщение для Maine Посмотреть профиль Найти все сообщения от Maine
 
Регистрация: 23.02.2016
Сообщений: 19

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

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 в массив.
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2016, 14:39
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

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);
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2016, 16:37
Интересующийся
Отправить личное сообщение для Maine Посмотреть профиль Найти все сообщения от Maine
 
Регистрация: 23.02.2016
Сообщений: 19

спасибо!
поняла
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2016, 17:26
Интересующийся
Отправить личное сообщение для Maine Посмотреть профиль Найти все сообщения от Maine
 
Регистрация: 23.02.2016
Сообщений: 19

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

result[i] < max
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2016, 17:33
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простые числа, не превосходящие заданного числа. jutochka123 Общие вопросы Javascript 2 30.09.2017 13:05
Анимация числа, при изменении ширина HTML элемента akkord87 Общие вопросы Javascript 10 15.12.2015 15:43
JS задача. Взаимно простые числа sashok Общие вопросы Javascript 5 23.11.2014 10:16
Есть числа от (0 до 100) что бы все эти числа были заменины в итоге например 110 impi Общие вопросы Javascript 4 08.10.2014 08:30
число 76.4705882.. сделать 76.47? (числа всегда разные) TongaG Ваши сайты и скрипты 3 19.01.2010 07:35