Профил
Loading...
+ Нов въпрос
Losko avatar Losko 69 Точки

[Arrays and Lists - Lab] 12. Sum Adjacent Equal Numbers

  1. Read the input and parse it to list of numbers.
  2. Find the leftmost two adjacent equal cells.
  3. Replace them with their sum.
  4. Repeat (1) and (2) until no two equal adjacent cells survive.

       5.Print the processed list of numbers

Не мога да се досетя за стъпка 4..
Решението ми без стъпка 4. http://pastebin.com/rM8Y4ptt

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

Проблемът се решава с един while. Заповядай: https://dotnetfiddle.net/hRfkFe

Поправих ти и парсването на DOUBLE, защото има и дробни числа на входа.

Има и друг вариант - без да използваш for, само си декларираш преди while една променлива за индекса int индекс=0; после си работиш пак по същия начин https://dotnetfiddle.net/peKUzS

2
07/10/2016 13:44:07
Losko avatar Losko 69 Точки

Благодаря.

0
Vladix avatar Vladix 73 Точки

Здравей, 

Видях няколко грешки. Без повече приказки направо започвам:

- числата в листа трябва да ти са реални(double) 

- метода RemoveAt приема int и премахва на тази позиция елемента - ти му даваш от листа на индекс "numbers[i + 1]" елемента, трябва да е просто "i + 1" 

- след като си премахнал елемента е добре да започнеш цикала от начало за да провериш отново за еднакви елементи. Аз сетвам i-то => i = -1, защото след това отива в ъпдейта на for-а и го прави 0

кодчето 

 

0
07/10/2016 13:48:35
pecbr avatar pecbr 4 Точки

Ето моя вариант, дано е от помощ :)

http://pastebin.com/Tr2e5T91

1
q4h7tg6m avatar q4h7tg6m 1 Точки

Ето го моя вариант: https://dotnetfiddle.net/. Всеки път когато открия две "Adjacent equal cells", сумирам и Replace-вам дясното, лявото Remove-вам и започвам да обхождам списъка от НУЛА (i=0). Късмет!

0