Професионална програма
Loading...
+ Нов въпрос
icowwww avatar icowwww 958 Точки
Best Answer

имаш 2 грешки в тая задача едната е в sumPairs, другата е в Shift

грешката в Shift e когато листа ти е само от 1 число:

nums.Length == 1

shift 2

Какво става ако се опиташ да изтриеш първото число 2 пъти? Гърми защото след второто завъртане няма какво да трие.

Грешката в sumPairs е , че първо правиш тези който трябва да се изтрият -1 и след това триеш всички отрицателни. Не знам как ти хрумна, но да триеш всички отрицателни може да включи и други числа. Поне да беше nums.RemoveAll(x => x ==-1);

или да си беше измислил някакво произволно число(не че все някога няма да изгърми). Най-лесно можеш да го оправиш ако направиш да трие това число още в цикъла и само да направиш цикъла да върти с едно по малко без да пропуска числото което идва с едно напред:

for (int i = 0; i < nums.Count - 1; i += 2)
            {
                nums[i] += nums[i + 1];
                
                nums.RemoveAt(i+1);
                i = i - 1;
            }

0
16/06/2017 21:57:32
ison4eto avatar ison4eto 40 Точки

Благодаря за коментара. Промених това и сега работи за 90/100:

int positions = int.Parse(command[1]);
if (positions > nums.Count)
 {
   positions %= nums.Count;
 }

Какво се случва когато shift-a е равен на броя на елементите? Нищо ли не трябва да се мести?

0
ison4eto avatar ison4eto 40 Точки

Благодаря!

0
DJColdBrain avatar DJColdBrain 9 Точки

Здравей колега. 

Сега ще ти кажа къде гърми. 

То ти гърми тук case "sumPairs":

Пробвай да направиш проверка с нечетен брой числа. За да го оправиш първо направи проверка и последното което няма другарче просто го добави.

0
ison4eto avatar ison4eto 40 Точки

Проблема не е в това.

Пробвах следния тест и изхода е какъвто се очаква.

вход:
1 2 3 4 5
sumPairs
print
изход:
[3, 7, 5]


 

0
spzvtbg avatar spzvtbg 582 Точки

грешките бяха в завъртането и сумирането на двоиките -  решение

0