1. Sum Adjacent Equal Numbers
Привет,
решението ми дава 70/100, не знам къде бъркам и какво още трябва да променя за да взема 100/100.
Ако може малко помощ ще съм благодарен
https://pastebin.com/ChnKYYpt
Привет,
решението ми дава 70/100, не знам къде бъркам и какво още трябва да променя за да взема 100/100.
Ако може малко помощ ще съм благодарен
https://pastebin.com/ChnKYYpt
Ето промяна в кода ти, мисля че ще се получи
for (int i = 0; i < numbers.Count; i++)
{
int nextIndex = 0;
if (i + 1 > numbers.Count - 1)
break;
else
nextIndex = i + 1;
if (numbers[i] == numbers[nextIndex])
{
numbers[i] += numbers[nextIndex];
numbers.RemoveAt(nextIndex);
i = -1;
}
}
Имай в предвид, когато декларираш променлива в тялото на цикъл тя не ти пази стойностите които ти трябват. В кода си double sum = numbers[i] += numbers[i + 1]; прави някакво изчисление, но когато цикълът се завърти и if проверката не се изпълнява, тази променлива няма да можеш да я използваш. Другото в задачата, което предполагам те обърква е, че стойностите за сумиране и премахване от списъка ги имаш от входа и за да получиш решение е необходимо де боравиш с индексите в списъка, а не със самите стойности. Когато ползваш масиви, трябва да си на "щрек" да неизлезнеш от масива и затова ако в условието не е посочено че стойностите ще са винаги в масива, направи проверка за препълване или за отрицателен индекс, след което направи изчислението.
Благодаря ти, отново много ми помогна.
Искам да попитам, защо въртим цикъла до numbers.count , a не до numbers.count - 1, т.е до последният му елемент?
Тогава нали не би трябвало да проверяваме дали i + 1 > numbers.count ?
Проверката я правим защото масива динамично променя големината си и това парче код
казва на програмата, че в масива можем да имамае най малко 1 елемент и когато достигнем тази големина, за да не препълним масива цикълът няма да се изпълни. Цикълът се върти до numbers.count защото започвайки от индекс 0, правим точно толкова цикъла, колкото е голям масива. numbers.count -1 ще ти върне предпоследния елемент от масива.
Благодаря ти! Беше ми много полезно !