Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
Благодаря ти много за включването AntyfrizZz,
1. Прав си наистина пропуснах да посоча път към условието.
Ето го и него - https://softuni.bg/trainings/1367/programming-fundamentals-may-2016
Селция - Arrays - Exercises, фаил Упражнение - Условия
2. Ето ново решение кето пак дава 71 точки само - http://pastebin.com/05gHHheP
Честно да кажа не схващам защо трябва да ползвам двумерен масив вмест просто 2 отделни суми sumLeft и int sumRight.
2.1 Стартирам от член на масива i = 1;
2.2 Обхождам масив int []number със for (int i = 1; i < number.Length - 1; i++) // пропускам умишлено 1-вия и последния елементи на масива. Защо: т.к в ляво от пъривя и в дясно от последния елемент няма нищо за събиране.
2.3 Сумирам всичко в ляво от текущия елемент 'i' и ако е изпълнено условието if (sumLeft == number[i]) тогава сумирам всичко от дясно for (int iRight = i + 1; iRight < number.Length; iRight++)
2.4 if (sumLeft == sumRight)
{
index = i;
break;
}
Би трябвало да сработи, но не 71/100.
Започвам да си мисля, че е проблемът е в грешно изписване на "no" или някаква друга подобна щуротия.
След малко ще пробвам и по твоя метод колега.
Здравей,
Така както си написал кода си, искаш сумата на елементите в ляво да е равна на сумата на елементите в дясно, както и те 2те да са равни на самия елемент. Никъде в условието не пише такова нещо. Искат само сумата в ляво от елемента да е равна на тази от дясно. Чети си добре условията. Чист късмет е, че имаш толкова точки :). Оправи си това условие и може да получиш 100/100.
В твоето решение, при всяко завъртане на главния цикъл, ти завърташ още 2 малки цикъла, което доста забавя нещата. В случая може и да ти даде 100 точки с такова решение на този етап от обучението си, но е добре за напред да ги съобразяваш тези работи.
Двумерният масив се изпозлзва точно за това, да не въртиш постоянно цикли и да пресмяташ нещо, което може да бъде пресметнато и без да въртиш едно и също нещо постоянно. Сега ще ти покажа стъпка по стъпка какво се случва като попълваш.
Примерът от условието 1 2 3 3
Преди да завъртиш цикъла, сетни стойностите в 1вата колона. Ако са равни, принтираш 0 и return;
След това завърташ само един цикъл. В твоето решение с главния цикъл въртиш и още 2 излишни в него. Реално, таблицата със суми в ляво се попълва, като към предходната стойност добавиш стойността на предходния индекс. Стойностите в реда "Сума в дясно" се получават, като от предходния индекс извадиш стойността на текущия индекс. Проверяваш дали 2те стойности за текущия индекс са равни. Ако са равни - принтираш индекса и return;
Ако след извъртане на цикъла не си намерил такава стойност, принтираш "no" и това е.
Ако си разбрал това решение, пробвай да го имплементираш с масив 2 на 2. Сетваш си началните стойности в 1вата колона, на следвашата итерация пишеш във втората колона, на следващата итерация презаписваш в 1вата колона, на следващата във 2рата и т.н.
Поздрави!
Ето го моето решение и аз бях зациклил на 71 но го оправих. Цък