Сумма чисел фиббоначи без использования функций и массивов.
Друзья, прошу помочи. Задача следующая - нужно найти сумму чисел Фиббоначи в промежутке от 1 до 1000 без использования функций и массивов, а так же библиотек джиквери. Нужно все сделать циклом. Функцией получилось, но как циклом это сделать? Подмогните, друзья.
function fibonacci(n) { if (n < 3) { if (n == 0) { return 0; } return 1; } else { return fibonacci(n-1) + fibonacci(n-2); } } for (n = 0; n <= 40; n++) { console.log(fibonacci(n)); } |
mariaanina,
:-? for (var a = 1, b = 1, sum = 0; b < 1000;) { sum += b; var temp = b ; b = a + b; a = temp; } alert(sum) |
Рони! Расцеловала бы Вас :-? Но у меня вопросик, смотрите, цикл for записывается как for (переменная(ые);условие;инк емент ), икремент тут, понятно, отсутствует, переменная "sum" - это, как я поняла, 0 значение отсчета, т.е. нуль, переменная "b" - это второе значение (т.к. идет 0, 1, 1, 2, 3, 5, 8 ) Далее мы переписываем переменную sum как b + b , получается, что в нее записалась 2 уже , т.к. идет 1+ 1, в переменную темп мы перезаписываем цифру 1 , в единицу снова 1 и получаем 2. Я не могу уловить вот какой момент, как цикл распознает сумму предыдущих 2х чисел, не могу уловить логику. Описала как могла выразиться...
|
mariaanina,
:) мне проще написать код чем коментировать ... может кто пояснит ... Цитата:
|
числа Фибоначчи начинаются с нуля по идее. в скрипте рони "a" должно быть ровно "0" в начале цикла.
a - F(n-2) b - F(n-1) чтобы не терялась "a" рони ее записывает в переменную temp. |
Часовой пояс GMT +3, время: 07:16. |