Решение на Първа задача от Тодор Табаков

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

Към профила на Тодор Табаков

Резултати

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

Код

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

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

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

Finished in 0.02831 seconds
12 examples, 0 failures

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

Тодор обнови решението на 14.10.2014 10:46 (преди около 10 години)

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

Привет :)

  • Може би трябва да хвърлиш едно око на style guide-a по въпрос на индентацията и интервалите :) (става въпрос за case и -)
  • Според мен името на аргумента n не е особено описателно и не означава много в този контекст (Това е лично мнение, което може да се различава от мнението на колегите).

Иначе добро решение :)

Тодор обнови решението на 15.10.2014 12:40 (преди около 10 години)

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