Решение на Първа задача от Александър Пирнарев

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

Към профила на Александър Пирнарев

Резултати

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

Код

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

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

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

Finished in 0.02263 seconds
12 examples, 0 failures

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

Александър обнови решението на 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-овете.