Бисер обнови решението на 14.10.2014 23:07 (преди около 10 години)
+def fibonacci(index)
+ if index <= 2 then return 1
+ else return fibonacci(index-1) + fibonacci(index-2)
+ end
+end
+
+def lucas(index)
+ if index <= 2 then return 3-index
+ else return lucas(index-1) + lucas(index-2)
+ end
+end
+
+def series(name, index)
+ case name
+ when "fibonacci" then return fibonacci(index)
+ when "lucas" then return lucas(index)
+ when "summed" then return fibonacci(index)+lucas(index)
+ end
+end
- Предпочитай равенствата пред неравенствата. Дават по ясна представа за дъното на рекурсията и обозначават по-добре допустимите стойности. Ако гледам кода без да знам условието израз от типа
lucas(-1) = 4
е объркващ. Примерна алтернатива:
return 2 if index == 1
return 1 if index == 2
- Не е нужно изрично да ползваш
return
, можеш да го изпускаш - Добро решение като цяло