Александър обнови решението на 09.10.2014 01:22 (преди около 10 години)
+def fibonacci (number)
+ return number if number<2
+ (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 summed (number)
+ (fibonacci(number)+lucas(number))
+end
+def series (string,number)
+ return fibonacci(number) if string=='fibonacci'
+ return lucas(number) if string=='lucas'
+ return summed(number) if string=='summed'
+end
- Имаш някои проблеми със спазването на конвенциите, главно whitespace-и и излишни скоби. Погледни style guide-ът, за да ги адресираш.
-
x if y
синтаксисът в Ruby е много красиво нещо, но лично аз бих се замислил дали не е по-добре да го разпиша с обикновенif
-elsif
-else
, ако го ползвам на всеки ред в метода си и то в комбинация с control flowreturn
-и. Опционално може да разгледаш иcase
(switch
-ът в Ruby). - Опитвай се имената на променливите ти да са близо до семантиката, която искаш да изкажеш. Всеки string може да се казва
string
. В конкретния случай точно този string има някакво специално значение. Постарай се да го отразиш чрез подходящо име.
Благодаря за обратната връзка. Оправих проблемите с изключение на x if y
частта, защото ми изглежда по-удачна за задачата.