Решение на Първа задача от Веселин Добрев

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

Към профила на Веселин Добрев

Резултати

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

Код

def series(type, position)
if(type == "fibonacci") then fibonacci(position)
elsif(type == "lucas") then lucas(position)
else fibonacci(position) + lucas(position)
end
end
def fibonacci(position)
position <= 2 ? 1 : fibonacci(position-1) + fibonacci(position-2)
end
def lucas(position)
if(position == 1) then 2
elsif(position == 2) then 1
else lucas(position-1) + lucas(position-2)
end
end

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

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

Finished in 0.02309 seconds
12 examples, 0 failures

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

Веселин обнови решението на 08.10.2014 23:36 (преди над 9 години)

+def series(type, position)
+ if(type == "fibonacci") then fibonacci(position)
+ elsif(type == "lucas") then lucas(position)
+ else fibonacci(position) + lucas(position)
+ end
+end
+
+def fibonacci(position)
+ position <= 2 ? 1 : fibonacci(position-1) + fibonacci(position-2)
+end
+
+def lucas(position)
+ if(position == 1) then 2
+ elsif(position == 2) then 1
+ else lucas(position-1) + lucas(position-2)
+ end
+end

Като цяло решението е добро.

  • Имаш малко проблеми, главно с whitespaces, които можеш да адресираш като прочетеш style guide-ът.
  • Опционално можеш да разгледаш и case (switch-ът в Ruby), но и с if решение е напълно наред.
  • fibonacci и lucas са имена на серии, а не типове, което беше наша грешка в условието, поправихме се.