Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
считалочка06
const N = 6; // количество учатников (можно сделать вводимой) K = 6 ; // величина считалкочки (можно сделать вводимой) 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; // основной цикл {count уменьшается на 1 от N до 1 каждый раз, когда выбывает один из участников. Цикл выполняется пока участников > 1} while count > 1 do begin if ki mod K = 0 then // если считалка дошла до K, то begin a[i] := 0; // участник с номером i выбывает count := count - 1; // участников стало на 1 меньше ki := 1; // снова считаем с участника с номером... position += i; while a[i] = 0 do begin i += 1; // ...с номером i, у которого a[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
09
test04
Matrix
Бассейн-5
BubbleSor (slimmer)
1januar2018
fgh
1
Урок 3, задача 6 (1479). Без циклов
Project 16 Pascal