p1530.pas
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 75 行
PAS
75 行
PROGRAM p1530;
VAR
puss :array[1..200]of integer;
num :integer;
n :Integer;
what :array[1..200]of integer;
whether :array[0..200]of boolean;
leave :array[1..200]of integer;
PROCEDURE print(p:integer);
begin
if p=1 then write(1)
else
begin
print(puss[p]);
write(what[p]);
end;
end;
PROCEDURE wfs;
var
s,t :integer;
find :boolean;
begin
if n=1 then
begin
writeln(1);
exit;
end;
fillchar(whether,sizeof(whether),false);
s:=1;
t:=1;
puss[1]:=0;
what[1]:=1;
whether[1]:=true;
leave[1]:=1;
find:=false;
repeat
if not whether[(leave[s]*10) mod n] then
begin
inc(t);
leave[t]:=(leave[s]*10) mod n;
what[t]:=0;
whether[(leave[s]*10) mod n]:=true;
puss[t]:=s;
if whether[0] then find:=true;
end;
if (not find)and(not whether[(leave[s]*10+1) mod n]) then
begin
inc(t);
leave[t]:=(leave[s]*10+1) mod n;
what[t]:=1;
whether[(leave[s]*10+1) mod n]:=true;
if whether[0] then find:=true;
puss[t]:=s;
end;
inc(s);
until find;
print(t);
writeln;
end;
BEGIN
readln(n);
while n<>0 do
begin
wfs;
readln(n);
end;
END.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?