Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
считалочка06
const N = 6; K = 9 ; // параметры считалкочки (можно сделать вводимыми) var count : integer; // счётчик участников (от 1 до N) var ki : integer; // ki - счётчик для считалки (от 1 до K) var i : integer; // i - номера участников (от 1 до N) var a : array [1..N] of integer; // массив 1 и 0: 1 - в круге, 0 - выбыл var j : integer; // вспомогательная переменная var position : integer; // номер оставшегося участника var sum_position : integer; // сумма номеров участников 1+2+3+...+N begin // задаём начальные переменные и выводим на печать начальное состояние position := 0; for j := 1 to N do // можно заменить на ( 1 + N ) * N div 2 sum_position += j; writeln('Число участников = ', N, ', считалка = ', K, ', sum_position = ', sum_position); write('start '); for i := 1 to N do begin a[i] := 1; write(a[i], ' '); end; writeln; count := N; i := 1; ki := 1; // основной цикл while count > 1 do begin if ki mod K = 0 then begin a[i] := 0; count := count - 1; ki := 1; position += i; while a[i] = 0 do begin i += 1; if i > N then // можно заменить на i := (i-1) mod N + 1; i := 1 end; // выводим на печать промежутоный результат: кто-то выбыл write ('i = ', i, ' pos=', position:2, ' '); for j := 1 to N do write(a[j], ' '); writeln; // end; i += 1; if i > N then // можно заменить на i := (i-1) mod N + 1; i := 1; if a[i] = 1 then ki += 1; end; write('stop '); for i := 1 to N do write(a[i], ' '); writeln; writeln( 'Остался участник под номером ', sum_position - position ); end.
run
|
edit
|
history
|
help
0
Homework 9
test02
Урок 3, задача 6 (1479). Без циклов
111
Квартира Задача 6.14 учебн. Грицанова
h5534
08 Ariketa WHILE
BIANCA SAMPAIO ALFRADIQUE 600615759
JOZIANE NEVES DE SOUZA 600630041
Pokemon2