Любомир обнови решението на 13.10.2014 10:17 (преди около 11 години)
+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може би не е най-подходящото име - не подаваш формула. Помисли за някакво друго име :)
Ако изключим тези неща - добро решение :)
