Мартина обнови решението на 10.10.2014 22:44 (преди около 10 години)
Здравей!
Решението ти ми харесва. :)
Имам само няколко забележки, основно за стилови неща:
Промяната на началните стойности за сумата е интересна. Единственото нещо, което леко ме притеснява е, че не става веднага ясно, че задачата на
recursive(3, 2, number)
е да върне сумата на двата реда. Според мен тук имаш две възможности - да го направиш по друг начин, чрез събиране, или да напишеш кратък коментар на съответния ред от код, който да показва, че това е сумата на двата реда. Не се притеснявай за бързодействието на програмата, това няма да го гледаме. :)Този
else recursive(...)
на един ред не е консистентен с останалите, които не са на един ред. Предполагам, че си го направила така заради ограничението от 5 реда в метод. Опитай се да го направиш по друг начин. Може да разгледаш конструкциятаcase ... when ... then ...
.Имената на променливи и функции трябва да са описателни - това е доста важно. Например параметъра
string
казва единствено, че се очаква да се подаде string. Трябва да дава и информация за това какъв смисъл съдържа този string. В твоя случай е име на ред. Същото важи и заnumber
(и на двете места).Помощната ти функция се нарича
recursive
. Да, наистина е рекурсивна, но има неща, които я описват по-добре. Например това, че смята рекурсивни редове.first
иsecond
също могат да си подобрят имената. Можеш например да уточниш (чрез името), че са стойности (или числа).Слагай по едно празно място около аритметичните оператори, така става по-четимо.
Можеш да сложиш и един празен ред след
return
-ите във втората функция, по-добре ще изглежда като са разделени крайните случаи от другия.
Питай ако се колебаеш за някое име или за нещо друго.