Usaco 1.2.5 双重回文数(Dual Palindromes)

题目:

 双重回文数

来源:

 Usaco1.2.5

题目大意:

 前N个大于S的且在2~10进制中有两个或以上是回文数

数据范围:

 1 <= N <= 15、0 < S < 10000

样例:

 3 25

 

 

26
27
28

做题思路:

 进制转换、我感觉从10进制开始枚举好,因为这样数组不用清空

知识点:

 进制转换

{
ID:Dount Nameless
TASK:dualpal
LANG:PASCAL
}
var
 a,b,c:array[0..10000]of longint;
 d:boolean;
 i,j,n,s:longint;
function pd(x:longint):boolean;{<判断回文>}
var
 i,j:longint;
begin
 i:=1;j:=x;
 while (a[i]=a[j])and(i<=j) do
 begin
  inc(i);dec(j);
 end;
 ifi<j then exit(false);
 exit(true);
end;
procedure print(x:longint);{<逐个枚举>}
var
 i,j,t,tot:longint;
begin
 d:=false; tot:=0;
 fori:=10 downto 2 do
 begin
   iftot>=2 then break;
  t:=x;  j:=0;
  while t>0 do
   begin
    inc(j);
    a[j]:=t mod i;
    t:=t div i;
   end;
   ifpd(j) then inc(tot);
 end;
 iftot>=2 then
 begin
  d:=true;
  writeln(x);
 end;
end;
begin
 assign(input,'dualpal.in');reset(input);
 assign(output,'dualpal.out');rewrite(output);
 readln(n,s);
 while n>0 do
 begin
  inc(s);
  print(s);
   ifd then dec(n);
 end;
 close(input);close(output);
end.
题目来源: http://ace.delos.com/usacoprob2?a=YqYGTaSaabV&S=dualpal

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值