如果一个正整数n至少在两个不同的进位制b1和b2下都是回文数(2<=b1,b2<=10),则称n 是双基回文数(注意,回文数不能包含前导零)。输入正整数S<10^6,输出比S大的最小双基回文数。
样例输入:1600000
样例输出:1632995
#include<stdio.h>
bool isHuiwen(int s,int base)
{
int str[40],i = 0;
bool flag = true;
while(s)
{
str[i++] = s%base;
s /= base;
}
for(int j = 0;j <= i/2;j++)
{
if(str[j] != str[i-j-1]) flag = false;
}
return flag;
}
int main()
{
int n,count = 0;
scanf("%d",&n);
while(count != 2)
{
n++;
count = 0;
for(int base = 2;base <= 10;base++)
{
if(isHuiwen(n,base))
{
count++;
}
if(count == 2) break;
}
}
printf("%d\n",n);
return 0;
}