Решение на Първа задача от Евгений Янев

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

Към профила на Евгений Янев

Резултати

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

Код

def series(type, index)
case type
when 'fibonacci' then fib(index)
when 'lucas' then lucas(index)
when 'summed' then fib(index) + lucas(index)
end
end
def fib(index)
return index if index <= 1
fib( index - 1 ) + fib( index - 2 )
end
def lucas(index)
return 2 if index == 1
return 1 if index == 2
lucas( index - 1 ) + lucas( index - 2 )
end

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

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

Finished in 0.02564 seconds
12 examples, 0 failures

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

Евгений обнови решението на 15.10.2014 14:33 (преди около 10 години)

+def series(type, index)
+ case type
+ when 'fibonacci' then fib(index)
+ when 'lucas' then lucas(index)
+ when 'summed' then fib(index) + lucas(index)
+ end
+end
+
+def fib(index)
+ return index if index <= 1
+ fib( index - 1 ) + fib( index - 2 )
+end
+
+def lucas(index)
+ return 2 if index == 1
+ return 1 if index == 2
+ lucas( index - 1 ) + lucas( index - 2 )
+end

Евгений, като цяло, решението ти е добро. Основната ми забележка към теб е, че не спазваш всички конвенции, които ръководството по стил препоръчва, като например:

  • Трябва да отместваш кода си само с два интервала. Не с табове, не с друго. Два интервала.
  • Не трябва да има интервали след отваряща скоба и преди затваряща такава (наппример, редове 11, 17). Още по-лошо е, че на други места не си слагал интервали, наоример редове 3-5.
  • Трябва да има само по един интервал окооло index на ред 10. В момента има два там.
  • Няма смисъл да съкращаваш името на функцията fib. Ползвай си fibonacci. По-ясно е.