Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено" - Pascal
Формулировка задачи:
Всем доброго времени суток!
В одной компьютерной игре игрок выставляет в линию шарики разных цветов. Когда образуется непрерывная цепочка из трех и более шариков одного цвета, она удаляется из линии. Все шарики при этом сдвигаются друг к другу, и ситуация может повториться.
Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено". Естественно, непрерывных цепочек из трех и более одноцветных шаров в начальный момент может быть не более одной.
Помогите, пожалуйста, тут что-то не так:
var MAS:aRRay of LongInt; N, i:IntegeR; cur, c1, c2:Byte; begin readln(N); SetLength(MAS, N); for i:= loW(MAS) to HigH(MAS) do read(MAS[i]); cur:= MAS[loW(MAS)]; c1:= 1; c2:= 0; for i:= loW(MAS) + 1 to HigH(MAS) do begin if (MAS[i] = cur) then inc(c1) else begin cur:= MAS[i]; if (c1 > c2) then begin c2:= c1; c1:= 1; end; end; end; if (c1 > c2) then writeln(c1) else writeln(c2); end.
Ну или предложите свои решения, только, пожалуйста, на паскале.
Решение задачи: «Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено"»
textual
Листинг программы
until(n-i<3)or not f;
Объяснение кода листинга программы
В данном коде происходит следующее:
- Переменная
n
представляет собой количество шариков, которые уже былиуничтожены
. - Переменная
i
представляет собой количество шариков, которые еще не былиуничтожены
. - Переменная
f
представляет собой флаг, который указывает на то, была ли выполнена последняя итерация цикла. - Выражение
n-i<3
проверяет, было ли уничтожено меньше трех шариков. - Оператор
or
проверяет, не было ли выполненоnot f
, то есть не была ли выполнена последняя итерация цикла. - Если условие из пункта 4 или пункта 5 истинно, то цикл продолжается.
- Если условие из пункта 4 и пункта 5 ложно, то цикл завершается и переменная
f
устанавливается в значениеtrue
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д