usaco1.2 dualpal 2009.10.22
{Tips:
1.若为一位数,则无需判断,它一定是符合条件的,虽然没有处理,但别忘了输出。
特殊情况一定要特殊处理
2.全局量,不要在函数或过程里再定义了,否则,其他的函数就用不成了。}
{
ID:
PROG: dualpal
LANG: PASCAL
}
program kakashi;
type
arr=array[1..50]of longint;
var
flag:boolean;
n,s,i,j,m,k,ni,tt:longint;
f1,f2:text;
a:arr;
procedure change;{将i转换成j进制,存在a[]中}
var
p:longint;
begin
ni:=0;
p:=i;
repeat
inc(ni);
a[ni]:=p mod j;
p:=p div j;
until (p<j);
if p<>0 then
begin
inc(ni);
a[ni]:=p;
end;
end;
function deal:boolean;{判断是否为回文数}
var
u:longint;
begin
for u:=1 to (ni div 2)do
if (a[u]<>a[ni+1-u]) then deal:=false;
end;
begin
assign(f1,'dualpal.in');
reset(f1);
assign(f2,'dualpal.out');
rewrite(f2);
read(f1,n,s);
k:=0;
i:=s;
repeat
inc(i);
if i<10 then
begin
inc(k);
writeln(f2,i);
end
else
begin
m:=0;
j:=1;
repeat
inc(j);
change;
if deal then inc(m);
until (j=10)or(m=2);
if m=2 then
begin
inc(k);
writeln(f2,i);
end;
end;
until k=n;
close(f1);
close(f2);
end.