Решение на Първа задача от Йордан Джамбазов

Обратно към всички решения

Към профила на Йордан Джамбазов

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 12 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def fibonacci(number)
return number if number <= 1
fibonacci(number - 1) + fibonacci(number - 2)
end
def lucas(number)
return 2 if number == 1
return 1 if number == 2
lucas(number - 1) + lucas(number - 2)
end
def series(type, number)
result = 0
result += fibonacci(number) if type == 'fibonacci' or type == 'summed'
result += lucas(number) if type == 'lucas' or type == 'summed'
result
end

Лог от изпълнението

............

Finished in 0.03119 seconds
12 examples, 0 failures

История (2 версии и 1 коментар)

Йордан обнови решението на 09.10.2014 00:19 (преди около 10 години)

+def fibonacci(number)
+ return number if number <= 1
+ fibonacci(number - 1) + fibonacci(number - 2)
+end
+
+def lucas(number)
+ return 2 if number == 1
+ return 1 if number == 2
+ lucas(number - 1) + lucas(number - 2)
+end
+
+def series(type, number)
+ result = 0
+ result += fibonacci(number) if type == 'fibonacci' or type == 'summed'
+ result += lucas(number) if type == 'lucas' or type == 'summed'
+ return result
+end

Йордан обнови решението на 09.10.2014 01:22 (преди около 10 години)

def fibonacci(number)
return number if number <= 1
fibonacci(number - 1) + fibonacci(number - 2)
end
def lucas(number)
return 2 if number == 1
return 1 if number == 2
lucas(number - 1) + lucas(number - 2)
end
def series(type, number)
result = 0
result += fibonacci(number) if type == 'fibonacci' or type == 'summed'
result += lucas(number) if type == 'lucas' or type == 'summed'
- return result
+ result
end
  • Малко си разширил дефиниционното множество на нашия fibonacci.
  • result е лошо име за променлива в 99% от случаите. Ако ти се наложи да го ползваш помисли дали не е имало по-лесен/ясен начин за имплементация. Примерно тук обикновен if - elsif - else би свършил работа. Опционално може да погледнеш case (switch-ът в Ruby).
  • Всъщност получавате имена на редици, не типове. Наша грешка, поправихме се.

Като изключим тези неща, решението е добре.