Александър обнови решението на 13.10.2014 15:20 (преди около 10 години)
+def fibonacci(n)
+ return n if n == 1
+ return 1 if 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 )
+end
+def summed(n)
+ fibonacci(n) + lucas(n)
+end
+def series(operation,n)
+ case operation
+ when 'fibonacci' then fibonacci(n)
+ when 'lucas' then lucas(n)
+ when 'summed' then summed(n)
+ else puts "wrong operation"
+ end
+end
- Имаш известно количество whitespace проблеми. Погледни style guide-a, за да ги адресираш.
- Слагай празен ред между отделните методи.
- operation не е много добро име. Всяка операция може да се казва operation. Опитвай се имената ти да са конкретни и близо до домейна на решавания проблем. Тук ви даваме име на редица.
- Не се грижи за невалидни входни данни.
- Също слагай празен ред между връщането при изключителните случаи и главния случай.
- В Ruby се смята за прилежно да подравняваш някои конструкции, когато се срещат на съседни редове. Сред тях са
=
,then
и стойностите на hash-овете.