Евгений обнови решението на 15.10.2014 14:33 (преди около 10 години)
+def series(type, index)
+ case type
+ when 'fibonacci' then fib(index)
+ when 'lucas' then lucas(index)
+ when 'summed' then fib(index) + lucas(index)
+ end
+end
+
+def fib(index)
+ return index if index <= 1
+ fib( index - 1 ) + fib( index - 2 )
+end
+
+def lucas(index)
+ return 2 if index == 1
+ return 1 if index == 2
+ lucas( index - 1 ) + lucas( index - 2 )
+end
Евгений, като цяло, решението ти е добро. Основната ми забележка към теб е, че не спазваш всички конвенции, които ръководството по стил препоръчва, като например:
- Трябва да отместваш кода си само с два интервала. Не с табове, не с друго. Два интервала.
- Не трябва да има интервали след отваряща скоба и преди затваряща такава (наппример, редове 11, 17). Още по-лошо е, че на други места не си слагал интервали, наоример редове 3-5.
- Трябва да има само по един интервал окооло
index
на ред 10. В момента има два там. - Няма смисъл да съкращаваш името на функцията
fib
. Ползвай сиfibonacci
. По-ясно е.