dualpal.pas
来自「Magio牛的usaco源代码」· PAS 代码 · 共 76 行
PAS
76 行
{
ID:maigoak1
PROG:dualpal
}
program dualpal;
var
fin,fout:text;
a:array[2..10]of string;
n,count,pals,i:integer;
s:longint;
function convert(x:longint;b:integer):string;
begin
convert:='';
repeat
convert:=chr(48+x mod b)+convert;
x:=x div b;
until x=0;
end;
procedure plus(var s:string;b:integer);
var
p,i:integer;
begin
p:=0;
for i:=length(s) downto 1 do
if s[i]<chr(47+b) then begin
p:=i;
break;
end;
if p=0 then begin
s:='0'+s;
p:=1;
end;
inc(s[p]);
for i:=p+1 to length(s) do
s[i]:='0';
end;
function pal(s:string):boolean;
var
l,i:integer;
begin
l:=length(s);
for i:=1 to l div 2 do
if s[i]<>s[l+1-i] then begin
pal:=false;
exit;
end;
pal:=true;
end;
begin
assign(fin,'dualpal.in');
reset(fin);
readln(fin,n,s);
close(fin);
for i:=2 to 10 do
a[i]:=convert(s,i);
count:=0;
assign(fout,'dualpal.out');
rewrite(fout);
repeat
inc(s);
pals:=0;
for i:=2 to 10 do begin
plus(a[i],i);
if pal(a[i]) then inc(pals);
end;
if pals>=2 then begin
inc(count);
writeln(fout,s);
end;
until count=n;
close(fout);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?