3、 N个人围成一圈玩游戏,按1-N编号,从1号开始,按顺时针方向数数,数到M的出队,当剩下最后一个人时,这个人就是游戏的胜利者,那么,请问,你应该站在什么位置,才能成为胜利者?
3、 N个人围成一圈玩游戏,按1-N编号,从1号开始,按顺时针方向数数,数到M的出队,当剩下最后一个人时,这个人就是游戏的胜利者,那么,请问,你应该站在什么位置,才能成为胜利者?
输入:N M(均小于1000)
输出:胜利者的位置。
program JOSEPHUS;
var n, m, s, f, t : integer;
a : array[1..1000] of boolean;
begin
writeln('input n, m');
readln(n, m);
f := 0;
t := 0;
s := 0;
repeat
t := t+1;
if t = n+1 then t := 1;
if a[t] = false then s := s+1;
if s = m then
begin
s := 0;
a[t] := true;
f := f+1;
end;
until f = n-1;
for t := 1 to n do
if a[t] = false then
begin
writeln(t);
break;
end;
readln;
end.
输入:N M(均小于1000)
输出:胜利者的位置。
program JOSEPHUS;
var n, m, s, f, t : integer;
a : array[1..1000] of boolean;
begin
writeln('input n, m');
readln(n, m);
f := 0;
t := 0;
s := 0;
repeat
t := t+1;
if t = n+1 then t := 1;
if a[t] = false then s := s+1;
if s = m then
begin
s := 0;
a[t] := true;
f := f+1;
end;
until f = n-1;
for t := 1 to n do
if a[t] = false then
begin
writeln(t);
break;
end;
readln;
end.


浙公网安备 33010602011771号