Files
ghukahr dcc1397c0c Fix "hint" code not working for the challenge: "Sum All Odd Fibonacci Numbers" (#28676)
* Fix code not passing on challenge tests

The code was not passing the challenge tests because we must sum only odd numbers. Cince we didn't provided an initial value for reduce, it would use the first element of the array, and if it was an odd number, it would skip our validation and add it to the final result.

[https://www.freecodecamp.org/forum/t/sum-all-odd-fibonacci-numbers-solution-not-passing-all-tests/236058](https://www.freecodecamp.org/forum/t/sum-all-odd-fibonacci-numbers-solution-not-passing-all-tests/236058)

* Same English fixed for Arabic

* Same English fix for Chinese

* Same English fix for Portuguese

* Same English fix for Russian

* Same English fix for Spanish
2019-02-12 15:54:53 -08:00

7.8 KiB
Raw Blame History

title, localeTitle
title localeTitle
Sum All Odd Fibonacci Numbers Сумма всех нечетных чисел Фибоначчи

:triangular_flag_on_post: Не забудьте использовать Read-Search-Ask если вы застряли. Попробуйте подключить программу :busts_in_silhouette: и напишите свой собственный код :pencil:

:checkered_flag: Проблема Объяснение:

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

Связанные ссылки

:speech_balloon: Подсказка: 1

Чтобы получить следующий номер серии, вам нужно добавить текущий к предыдущему, и это даст вам следующий.

попытаться решить проблему сейчас

:speech_balloon: Подсказка: 2

Чтобы проверить, действительно ли номер, все, что вам нужно проверить, это number % 2 == 0 .

попытаться решить проблему сейчас

:speech_balloon: Подсказка: 3

Когда вы получите следующий нечетный, не забудьте добавить его в глобальную переменную, которая может быть возвращена в конце. result += currNumber; будет делать трюк.

попытаться решить проблему сейчас

Осторожно, спойлеры!

предупреждающий знак

Решение впереди!

:beginner: Решение базового кода:

function sumFibs(num) { 
    var prevNumber = 0; 
    var currNumber = 1; 
    var result = 0; 
    while (currNumber <= num) { 
        if (currNumber % 2 !== 0) { 
            result += currNumber; 
        } 
 
        currNumber += prevNumber; 
        prevNumber = currNumber - prevNumber; 
    } 
 
    return result; 
 } 
 
 // test here 
 sumFibs(4); 

:rocket: Код запуска

Код Объяснение:

  • Создайте переменную, чтобы вести запись текущего и предыдущего номеров вместе с результатом, который будет возвращен.
  • Используйте цикл while, чтобы убедиться, что мы не переходим через число, указанное как параметр.
  • Мы используем операнд по модулю, чтобы проверить, является ли текущий номер нечетным или четным. Если он четный, добавьте его в результат.
  • Завершите круг Фибоначчи, повернув следующий номер и меняя значения.
  • Верните результат.

Связанные ссылки

  • JS while Loop

:sunflower: Решение промежуточного кода:

function sumFibs(num) { 
    // Perform checks for the validity of the input 
    if (num < 0) return -1; 
    if (num === 0 || num === 1) return 1; 
 
    // Create an array of fib numbers till num 
    const arrFib = [1, 1]; 
    let nextFib = 0; 
 
    // We put the new Fibonacci numbers to the front so we 
    // don't need to calculate the length of the array on each 
    // iteration 
    while((nextFib = arrFib[0] + arrFib[1]) <= num) { 
        arrFib.unshift(nextFib); 
    } 
 
    // Sum only the odd numbers and return the value 
    return arrFib.reduce((acc, curr) => { 
        return acc + curr * (curr % 2); 
    }, 0); 
 } 
 
 // test here 
 sumFibs(4); 

:rocket: Код запуска

Код Объяснение:

  • Создайте массив чисел фибоначчи до num .
  • Используйте метод reduce() чтобы найти сумму нечетных элементов массива.
  • Верните сумму.

Связанные ссылки

:clipboard: ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:

  • :warning: НЕ добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это похоже, но лучше , попробуйте объединить (или заменить) существующее подобное решение.
  • Добавьте объяснение своего решения.
  • Классифицируйте решение в одной из следующих категорий - Basic , Intermediate и Advanced . :traffic_light:
  • Пожалуйста, добавьте свое имя пользователя, только если вы добавили соответствующее основное содержимое . ( :warning: НЕ удаляйте существующие имена пользователей )

Увидеть :point_right: Wiki Challenge Solution Template для Wiki Challenge Solution Template для справки.