Loading...
SvilenPavlov avatar SvilenPavlov 11 Точки

Arrays - Excercises 11.Equal Sums

Здравейте!

Условието - https://softuni.bg/trainings/resources/officedocument/31572/exercise-problem-descriptions-programming-fundamentals-may-2018

11-та задача.

Ето кода - https://pastebin.com/Wf1npJgs.

Приятели, въпроса ми е защо ми дава 80/100?
 

При една малка промяна на условията на първия цикъл даде 90/100, а именно:

да почва от 0, вместо 1 и да свършва i < arr.Length, вместо с 1 по-малко.
Моята логика бе, че няма сума от ляво на първото и отдясно на последното число, но явно бъркам. 
Още повече ме обърква факта, че съм написал същия по логика код преди време, който дава 100/100. ( https://pastebin.com/Zv9JtUBm)
Въпорса ми е и каква е разликата между 2та защото не намерих такава!

 

Благодаря, предварително!

Тагове:
0
Programming Fundamentals
GeorgiPaunov avatar GeorgiPaunov 265 Точки
Best Answer

Първият цикъл трябва да ти започва от нула и да ти върти до arr.Length, защото ако масъвът ти е от два елемента, няма въобще да влезеш, ще изглежда нещо такова: i = 1; 1 < 2 - 1; 1++; Така ако първото число ти е нула, отговорът трябва да ти е едно, а твоят ще е "no". Освен това никога няма да стигнеш до последната цифра.

След като опрвиш това, пробвай с инпут примерно: 1 0. Отговорът трябва да е 0, но ти ще получиш "no", защото така си му задал в проверките накрая (else if magicIndex == 0). Направи си една булева променлива в началото isFound = false; При проверката за лявата и дясната сума я смени на true. (Тук можеш дори да брейкнеш цикъла). След това замени (else if magicIndex == 0) с (else if isFound == false) и би трябвало да ти даде 100 броя.

0
SvilenPavlov avatar SvilenPavlov 11 Точки

Благодаря, Георги!

Грешката ми беше, че за мен липсата на число не е равно на нула.
И в двата случая това е било разликата - в единия липсата на число от ляво, в другия липсата на число от дясно.
Поправих обхвата на първия цикъл, което хвана първия случай, а после с добавяне на булева хванах втория. :)
Признавам, че първите 5мин си мислех, че съм луд, но се усетих.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.