Niklaus Wirth

Niklaus Wirth

Translate

Последовательность Фибоначи - Sum All Odd Fibonacci Numbers (13)

Последовательность Фибоначи
13-ый день программы "#100 Days Of Code"

Первые два числа в последовательности Фибоначчи равны 1 и 1. Каждое дополнительное число в последовательности является суммой двух предыдущих чисел. Первые шесть цифр последовательности Фибоначчи 1, 1, 2, 3, 5 и 8.

Учитывая, что Num положительное целое число, возвращает сумму всех нечетных чисел Фибоначчи, которые меньше или равны NUM.

Например, sumFibs (10) должен возвращать 10, потому что все нечетные числа Фибоначчи меньше чем 10: 1, 1, 3 и 5.

Так, как последовательность начинается с 0 и 1, то создали две переменные Num1 и Num2 с такими значениями.

Для решения этой задачи нам потребуется знать сумму двух последних чисел - sumNum и вариант ответа - answer

Задаем цикл while() , в котором, пока самое большее число последовательности Num2 меньше или равно заданному числу - num, мы выполняем проверку нашего числа на то, что оно является нечетным . И если так, то наш ответ становится суммой чисел нашей последовательности.

В этом же цикле ниже (а код выполняется сверху вниз), мы вначале определяем сумму двух последних чисел массива и потом передвигаем наши два номера на порядок выше (в конец нашей последовательности)

Цикл повторяется, пока условие верно.

Ответом будет сумма всех нечетных чисел последовательности -answer



function sumFibs(num) {
  var Num1 = 0;
 var Num2 = 1;
  var sumNum = 0;
  var answer = 0;
  while(Num2 <= num){
    if(Num2 % 2 !== 0){
      answer += Num2;
    }
    sumNum =Num1 + Num2;
    Num1 = Num2;
    Num2 = sumNum;
    
  }
  return answer;
}

sumFibs(4);



Ответы:

sumFibs(1)
return a number.

sumFibs(1000)
return 1785.

sumFibs(4000000)
return 4613732.

sumFibs(4)
return 5.

sumFibs(75024)
return 60696.

sumFibs(75025)
return 135721.


Комментариев нет:

Отправить комментарий