Александър обнови решението на 14.10.2014 11:58 (преди около 11 години)
Хубаво решение, ако го дооправиш малко, ще стане супер !
Ето ти и насоки
:
-
Форматиране на кода ! Оставяй празни места около оператори (
=,-, ...). Виж как се индентира правилноcase. Освен това можеш да подравнишthen-овете да са един под друг за естетика. Ей така:when 'beautiful' then ... when 'ugly' then ... - Функциите
fibonacciиlucasти изглеждат почти еднакво. Опитай се да измъкнеш общата логика в отделна функция. На нея можеш да подаваш началните стойности. Имената на променливите
fibonacci,lucasне са ок. Може биsequenceе по-подходящо. Ако ти станат много дълги редовете и скептикът се оплаква, може да подаваш блоковете наeach_with_objectчрезdo,end.l,stringне са хубави имена. Много са общи, не ти казват нищо за същността на обекта, който стои зад това име. Помисли за други имена.Променливата
n, която създаваш в блоковете наeach_with_object, никъде не се ползва в самия блок. Тогава можеш да я именуваш като_. Това е добра практика.За Лукас използваш първите две числа
[2,1], но за Фибоначи ползваш нулевото и първото -[0,1]. Бъди консистентен в избора си. В случая е по-добре и на двете места да подаваш първия и втория член, по-ясно е така.n.times...прави малко повече изчисления отколкото трябва. За първия член (n = 1) ще се изпълни1.times..., което ще ти пресметне третия член, а реално нямаш нужда от него. Помисли как можеш да го оправиш.
Благодаря, ще почвам сега да ги оправям. За повтарящите се функции се усетих почти веднага.
