Гра в камінчики Є купка з N камінчиків. Грають двоє. За один хід потрібно взяти не менше...

0 голосов
86 просмотров

Гра в камінчики

Є купка з N камінчиків. Грають двоє. За один хід потрібно взяти не менше одного і не більше M камінців. Програв той, хто не зміг зробити хід.

Скільки камінців взяли б Ви, якщо розраховуєте на виграш і ходите першим або 0, якщо шансів на виграш немає?

Вхідні дані - 7 4

Значення N і M (1 ≤ N, M ≤ 1000).

Вихідні дані - 2


Информатика (20 баллов) | 86 просмотров
Дан 1 ответ
0 голосов

Алгоритм выигрыша в этой игре очень простой: каждый раз надо забирать из кучки M+1 камешек. Следовательно, первым ходом надо забрать количество камешков, равное остатку от целочисленного деления N на М+1, а затем в каждый последующий ход забирать столько камешков, чтобы оставшееся их число было кратно M+1.

Ниже приведено решение на языке Borland Pascal 7.01

uses Crt;
var
  N,M,k:integer;
begin
  ClrScr;
  Write('N,M='); Read(N,M);
  k:=N mod (M+1);
  Writeln(k);
  ReadKey
end.

Тестовое решение:
N,M=7 4
2

(142k баллов)