[题目] Section 1.2 Dual Palindromes
[题意]如果一个整数N在2~10进制下至少有两次是回文数,那么N就叫做双重回文数。给出两个整数N和S,找出从N开始的前S个双重回文数并输出。
[思路]和上一个题基本一样。。
[代码]
#include <iostream>
#include<string>
#include<algorithm>
#include<cstdio>
using namespace std;
string BIT="0123456789";
bool check(int n)
{
int m=n;
int num=0,bit=2;
for(;bit<=10;bit++){
n=m;
string s="";
while(n){
s+=BIT[n%bit];
n/=bit;
}
string ss=s;
reverse(s.begin(),s.end());
if(ss==s){
num++;
if(num==2)
return true;
}
}
return false;
}
int main()
{
int N,S;
while(cin>>N>>S){
for(int num=S+1;N;num++){
if(check(num){
N--;
cout<<num<<endl;
}
}
}
return 0;
}