Математическое моделирование. Задача Иосифа Флавия - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Задача Иосифа Флавия: Существует легенда, что Иосиф Флавий - известный историк первого века - выжил и стал известным благодаря математической одаренности. В ходе иудейской войны он в составе отряда из 41 иудейского воина был загнан римлянами в пещеру. Предпочитая самоубийство плену, воины решили выстроиться в круг и последовательно убивать каждого третьего из живых до тех пор, пока не останется ни одного человека. Однако Иосиф наряду с одним из своих единомышленников счел подобный конец бессмысленным - он быстро вычислил спасительные места в порочном круге, на которые поставил себя и своего товарища. И лишь поэтому мы знаем его историю… В нашем варианте мы начнем с того, что выстроим в круг N человек, пронумерованных числами от 1 до N, и будем исключать каждого k-ого до тех пор, пока не уцелеет только один человек. Например, если N=10, K=3, то сначала умрет 3-й, потом 6-й, затем 9-й, затем 2-й, затем 7-й, потом 1-й, потом 8-й, за ним - 5-й, и потом 10-й. Таким образом, уцелеет 4-й. Требуется написать программу, которая по заданным N и K будет определять номер уцелевшего человека. Входные данные Входной файл INPUT.TXT содержит два натуральных числа N и K. Ограничения: N<=500, K<=100. Выходные данные В выходной файл OUTPUT.TXT нужно вывести номер уцелевшего человека.
Желательно бы задачу с пояснениями, ну если конечно можно)

Решение задачи: «Математическое моделирование. Задача Иосифа Флавия»

textual
Листинг программы
var i, N, K, col, temp: longint;
var c: array[1..500] of boolean;
begin
  assign(input, 'input.txt'); reset(input);
  assign(output, 'output.txt'); rewrite(output);
  read(N,K);
  i:=1;
  while col<N-1 do
  begin
  temp:=0;
  while temp<K do
  begin
  if c[i]=false then
  inc(temp);
  inc(i);
  if i=N+1 then
  i:=1;
  end;
  if i>1 then c[i-1]:=true
  else
  c[N]:=true;
  inc(col);
  end;
  for i:=1 to N do
  if c[i]=false then
  col:=i;
  writeln(col);
end.

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы