Решение на Първа задача от Мария Дулева

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

Към профила на Мария Дулева

Резултати

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

Код

def fibonacci_series(number)
return 1 if number <= 2
fibonacci_series(number - 1) + fibonacci_series(number - 2)
end
def lucas_series(number)
return 2 if number == 1
return 1 if number == 2
lucas_series(number - 1) + lucas_series(number - 2)
end
def series(kind_of_series, number)
case kind_of_series
when "fibonacci" then fibonacci_series(number)
when "lucas" then lucas_series(number)
when "summed" then fibonacci_series(number) + lucas_series(number)
end
end

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

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

Finished in 0.02168 seconds
12 examples, 0 failures

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

Мария обнови решението на 12.10.2014 12:59 (преди над 9 години)

+def fibonacci_series(number)
+ return 1 if number<=2
+ fibonacci_series(number-1)+fibonacci_series(number-2)
+ end
+def lucas_series(number)
+ return 2 if number==1
+ return 1 if number==2
+ lucas_series(number-1)+lucas_series(number-2)
+end
+def series(kind_of_series, number)
+ case kind_of_series
+ when "fibonacci" then fibonacci_series(number)
+ when "lucas" then lucas_series(number)
+ when "summed" then fibonacci_series(number)+lucas_series(number)
+ end
+end

Като цяло е добре решението, но имаш малко проблеми с whitespace.

  • Оставяй по един празен ред между методите.
  • Подравнявай def и end на едно ниво.
  • Оставяй място около оператори ( +, -, == и т.н)
  • Виж как се индентира case в style guida-а
  • За естетическа наслада можеш да подравниш then-овете в case-a да са един под друг :)

Мария обнови решението на 14.10.2014 21:25 (преди над 9 години)

def fibonacci_series(number)
- return 1 if number<=2
- fibonacci_series(number-1)+fibonacci_series(number-2)
- end
+ return 1 if number <= 2
+ fibonacci_series(number - 1) + fibonacci_series(number - 2)
+end
+
def lucas_series(number)
- return 2 if number==1
- return 1 if number==2
- lucas_series(number-1)+lucas_series(number-2)
+ return 2 if number == 1
+ return 1 if number == 2
+ lucas_series(number - 1) + lucas_series(number - 2)
end
+
def series(kind_of_series, number)
case kind_of_series
- when "fibonacci" then fibonacci_series(number)
- when "lucas" then lucas_series(number)
- when "summed" then fibonacci_series(number)+lucas_series(number)
+ when "fibonacci" then fibonacci_series(number)
+ when "lucas" then lucas_series(number)
+ when "summed" then fibonacci_series(number) + lucas_series(number)
end
end

Принципно е добре да се придържаш към низове с единични кавички, освен ако не използваш специалните свойства на низ с двойни кавички (например, интерполация).

Иначе, решението изглежда добре.