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

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

Към профила на Веселин Русинов

Резултати

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

Код

def fibonacci index
return 1 if index <= 2
fibonacci(index - 1) + fibonacci(index - 2)
end
def lucas index
return 2 if index == 1
return 1 if index == 2
lucas(index - 1) + lucas(index - 2)
end
def series series_name, index
case series_name
when "fibonacci" then fibonacci(index)
when "lucas" then lucas(index)
when "summed" then lucas(index) + fibonacci(index)
end
end

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

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

Finished in 0.0218 seconds
12 examples, 0 failures

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

Веселин обнови решението на 12.10.2014 12:23 (преди около 10 години)

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

Веселин обнови решението на 13.10.2014 22:44 (преди около 10 години)

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

Веселин обнови решението на 13.10.2014 22:56 (преди около 10 години)

def fibonacci index
return 1 if index <= 2
- fibonacci( index - 1 ) + fibonacci( index - 2 )
+ fibonacci(index - 1)+ fibonacci(index - 2)
end
def lucas index
return 2 if index == 1
return 1 if index == 2
- lucas( index - 1 ) + lucas( index - 2 )
+ lucas(index - 1) + lucas(index - 2)
end
def series function, index
case function
- when "fibonacci" then fibonacci index
- when "lucas" then lucas index
- when "summed" then lucas( index ) + fibonacci( index )
+ when "fibonacci" then fibonacci index
+ when "lucas" then lucas index
+ when "summed" then lucas(index) + fibonacci(index)
end
end

Веселин обнови решението на 13.10.2014 22:58 (преди около 10 години)

def fibonacci index
return 1 if index <= 2
fibonacci(index - 1)+ fibonacci(index - 2)
end
def lucas index
return 2 if index == 1
return 1 if index == 2
lucas(index - 1) + lucas(index - 2)
end
def series function, index
case function
- when "fibonacci" then fibonacci index
- when "lucas" then lucas index
- when "summed" then lucas(index) + fibonacci(index)
+ when "fibonacci" then fibonacci index
+ when "lucas" then lucas index
+ when "summed" then lucas(index) + fibonacci(index)
end
end

Като цяло добре. Няколко забележки:

  • Имаш малък проблем с whitespace и индентацията на case според нашата версия на style guide-a.
  • Не си в някоя от ситуациите, където би искал да пропуснеш скобите при извикане или дефиниране на метод. Погледни горното за повече информация.
  • function не е най-добрият избор. Все пак ви подаваме име на ред.
  • Слагай празен ред между основните изчисления и връщаната стойност на края или изключителните случаи и главната логика.
  • Смята се за прилежно да подравняваш някои конструкции, когато се срещат на съседни редове. Сред тях са =, then и стойностите на hash-овете.

Веселин обнови решението на 15.10.2014 13:30 (преди около 10 години)

def fibonacci index
return 1 if index <= 2
+
fibonacci(index - 1)+ fibonacci(index - 2)
end
def lucas index
return 2 if index == 1
return 1 if index == 2
+
lucas(index - 1) + lucas(index - 2)
end
-def series function, index
- case function
- when "fibonacci" then fibonacci index
- when "lucas" then lucas index
- when "summed" then lucas(index) + fibonacci(index)
+def series series_name, index
+ case series_name
+ when "fibonacci" then fibonacci(index)
+ when "lucas" then lucas(index)
+ when "summed" then lucas(index) + fibonacci(index)
end
end

Веселин обнови решението на 15.10.2014 13:31 (преди около 10 години)

def fibonacci index
return 1 if index <= 2
- fibonacci(index - 1)+ fibonacci(index - 2)
+ fibonacci(index - 1) + fibonacci(index - 2)
end
def lucas index
return 2 if index == 1
return 1 if index == 2
lucas(index - 1) + lucas(index - 2)
end
def series series_name, index
case series_name
when "fibonacci" then fibonacci(index)
when "lucas" then lucas(index)
when "summed" then lucas(index) + fibonacci(index)
end
end