Любомир обнови решението на 13.10.2014 10:17 (преди около 10 години)
+def fibonacci(number)
+ return 1 if number == 1 || number == 2
+ fibonacci(number - 1) + fibonacci(number - 2) if number > 2
+end
+
+def lucas(number)
+ return 2 if number == 1
+ return 1 if number == 2
+ lucas(number - 1) + lucas(number -2) if number > 2
+end
+
+def series(formula, number)
+ return fibonacci(number) if formula.eql? 'fibonacci'
+ return lucas(number) if formula.eql? 'lucas'
+ fibonacci(number) + lucas(number) if formula.eql? 'summed'
+end
Привет :)
- За методите
lucas
иfibonacci
не е нужно да да правиш тази проверка дали числото е по-голямо от 2. Няма да подаваме невалидни данни, а ти проверяваш другите случаи. - За
series
ще е доста по-четимо, ако използвашcase
вместо 3if
-а. Може да го погледнеш :) - Също имаш на едно място където имаш дето имаш проблем с
-
и интервалите. - За имената на аргументите на
series
:formula
може би не е най-подходящото име - не подаваш формула. Помисли за някакво друго име :)
Ако изключим тези неща - добро решение :)