Задача.
В игре берет участие N игроков. Выбывает из игры игрок с номером D. Счет повторяется для оставшихся. Указать порядковый номер игрока, который остался.
Например: есть 6 игроков. Выбывает каждый 2-ой
1 2 3 4 5 6
1 0 1 0 1 0 после первого прохода каждый второй выбыл
1 0 0 0 1 0 после второго прохода каждый второй выбыл и продолжая счет на третий проход получим
0 0 0 0 1 0 — остался игрок с номером 5.
const n = 6;//колличество игроков var g: array [1..n] of byte; d: byte; i,k,j,p: integer; f: boolean; begin f := true; //все игроки в игре = 1 for i := 1 to n do begin g[i] := 1; write(g[i]:3) end; writeln('Number gamer for Exit'); readln(d); i:=1; p:=1; while f do //пока не остался 1 игрок - считаем begin if (g[i]=1) and (p mod d=0) then begin g[i]:=0; //игрок на выход p:=0; end; inc(i); if i>n then i:=1; //проходим массив по кругу if g[i]=1 then inc(p); k:=0; for j := 1 to n do //смотрим, сколько игроков осталось if g[j] = 1 then inc(k); if k = 1 then f := false;//1 игрок - победитель end; for i:=1 to n do if g[i]=1 then writeln(i);// указываем номер оставшегося игрока end.