Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сумма чисел фиббоначи без использования функций и массивов. (https://javascript.ru/forum/misc/47668-summa-chisel-fibbonachi-bez-ispolzovaniya-funkcijj-i-massivov.html)

mariaanina 02.06.2014 23:05

Сумма чисел фиббоначи без использования функций и массивов.
 
Друзья, прошу помочи. Задача следующая - нужно найти сумму чисел Фиббоначи в промежутке от 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));
}

рони 03.06.2014 00:06

mariaanina,
:-?
for (var a = 1, b = 1, sum = 0; b < 1000;)  {
     sum += b;
     var temp = b ;
     b = a + b;
     a = temp;

}
alert(sum)

mariaanina 03.06.2014 00:27

Рони! Расцеловала бы Вас :-? Но у меня вопросик, смотрите, цикл for записывается как for (переменная(ые);условие;инк емент ), икремент тут, понятно, отсутствует, переменная "sum" - это, как я поняла, 0 значение отсчета, т.е. нуль, переменная "b" - это второе значение (т.к. идет 0, 1, 1, 2, 3, 5, 8 ) Далее мы переписываем переменную sum как b + b , получается, что в нее записалась 2 уже , т.к. идет 1+ 1, в переменную темп мы перезаписываем цифру 1 , в единицу снова 1 и получаем 2. Я не могу уловить вот какой момент, как цикл распознает сумму предыдущих 2х чисел, не могу уловить логику. Описала как могла выразиться...

рони 03.06.2014 08:32

mariaanina,
:) мне проще написать код чем коментировать ... может кто пояснит ...
Цитата:

Сообщение от mariaanina
цикл распознает сумму предыдущих 2х чисел

так вот же строка 4 ... a хранило предыдущее значение в b создали новое ....эээ...:write:

depp 03.06.2014 17:22

числа Фибоначчи начинаются с нуля по идее. в скрипте рони "a" должно быть ровно "0" в начале цикла.
a - F(n-2)
b - F(n-1)
чтобы не терялась "a" рони ее записывает в переменную temp.


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