Неправильный вывод при попытке перебрать первые 50 четных чисел Фибоначчи в JavaScript [duplicate]

0

Я новичок в JavaScript, и мне не удается заставить мой код работать. Любая помощь/руководство очень ценится.

Я получаю неправильный вывод (в настоящее время "9.715575428267785e + 30") при попытке "отобразить сумму первых 50 чисел Фибоначчи"

Мне нужно: 1. создать цикл, который генерирует числа Фибоначчи. 2. Проверяйте каждую из них на предмет ее четности или нечетности. 3. Добавьте вверх по четным, считая их, когда идете.

------------HERE МОЙ КОД, КОТОРОЕ ДАЛЕЕ --------

<div id="sumFib" class="hwbutton">Get the Sum!</div>
The sum of the first 50 even Fibonacci numbers is: 
<span class="" id="sumFibResult"></span>

<script>    
    var getFibSum = document.getElementById("sumFib");
    getFibSum.onclick = function () {
        fiftyEvenFibonacciSum();
    }

    function fiftyEvenFibonacciSum() {

        var loopFib;

        //Initialize fibonacci array

        var fibonacci = new Array();

        //Add fibonacci array items
        fibonacci[0] = 0;
        fibonacci[1] = 1;
        var sum = 0;

        //Since it takes 150 fib numbers to obtain 50 even, loop through that many.
        for (loopFib = 2; loopFib <= 150; loopFib++) {

            // Next fibonacci number = previous + one before previous
            fibonacci[loopFib] = fibonacci[loopFib - 2] + fibonacci[loopFib - 1];

            //test for even numbers with if then statement
            var integer = parseInt(fibonacci[loopFib]);

            if (integer % 2 == 0) {

                //Add up the even fib numbers if even and output into dispay variable
                var display = sum += fibonacci[loopFib];

                //output results to html page
                document.getElementById("sumFibResult").innerHTML = display;

            }
        }
    }
</script>

http://jsfiddle.net/isherwood/38gPs

  • 1
    К вашему сведению, вы добавляете первые 68 четных чисел Фибоначчи. Пожалуйста, не задавайте один и тот же вопрос несколько раз. Если вы хотите добавить новую информацию, отредактируйте свой вопрос.
  • 0
    Какая правильная сумма?
Показать ещё 1 комментарий
Теги:
arrays

1 ответ

1

Я не согласен с людьми, говорящими, что это дубликат, потому что я думаю, что реальный вопрос, который вы задаете, - "как мне отлаживать мою неудачную программу?" Я уверен, что это тоже должен быть дубликат, но, ну, подол...

Во всяком случае, я думаю, что вам будет полезно здесь console.log(). Я не знаю, какой браузер вы используете, но все основные имеют консоль JS. (Я рекомендую Firefox с Firebug.) Добавьте строки, такие как:

console.log('integer for ' + loopFib + '=' + integer);

Или

console.log('display=' + display);

В соответствующие моменты в вашем скрипте. Затем откройте консоль JavaScript браузера, чтобы просмотреть результаты. Я уже вижу некоторые основные недостатки в вашем коде, но я не собираюсь исправлять их для вас - это ваше домашнее задание в конце концов, и я бы лучше научил человека ловить рыбу. Прокомментируйте этот ответ, если у вас есть еще вопросы.

  • 0
    Спасибо за руководство. Я буду использовать console.log
  • 0
    @ user3390793: Не уверен, что это правильно, но это показывает, как вы можете использовать console.log() для отладки: jsfiddle.net/25xwA/2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню