📄 约瑟夫问题.pas
字号:
PROGRAM yuesefu;
VAR
a,b:ARRAY [1..10000] OF integer;
i,k,m,n:integer;
PROCEDURE p(k,m:integer);
VAR
i,j:integer;
BEGIN
FOR i:=k+1 TO m DO b[i-k]:=a[i];
FOR i:=1 TO k-1 DO b[i+m-k]:=a[i];
FOR i:=1 TO m DO a[i]:=0;
FOR j:=1 TO m-1 DO a[j]:=b[j];
FOR j:=1 TO 10000 DO b[j]:=0;
END;
BEGIN
writeln('input 2 number(1st is the number of fanren;2nd is the number of loop)');
readln(m,n);
writeln(m:2,n:2);
FOR i:=1 TO m DO a[i]:=i;
REPEAT
IF n MOD m=0 THEN k:= n DIV m * n ELSE k:=n MOD m;
write (a[k]:4);
p(k,m);
m:=m-1;
UNTIL m=1;
writeln;
writeln('the man alive is',a[1]:2);
readln;
END.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -