双基回文数

输入一个正整数n,至少在两个不同的进位制下,b1,b2都是回文数,(2,10)之间的进位制,回文数不包含前导0,输入正整数S<10^6,输出比S大的双基回文数.

思路:用count标记,在一个进位制下如果是回文数,则+1,为2时直接退出,输出结果

不包含前导0,回文数首位为0,直接退出判断回文数的循环

#include

#define MAX 32

int main()

{

int n;

while(scanf("%d",&n)!=EOF)

{

int count=0;

int a[MAX];

while(1)

{

int i,j,k,temp,end;

n=n+1;

count = 0;

for(k=2;k<=10;k++)

{

i=0;

temp = n;

while(temp)

{

a[i]=temp%k;

temp=temp/k;

i++;

}

end=i--;//记录回文数最后一位的位置,判断回文数是否有前导0

for(j=0;j

{

if((a[j]!=a[i])||a[0]==0||a[end]==0)

{

break;

}

}

if(j>=i)

count++;

if(count==2)

break;

}

if(count==2)

{

break;

}

}

printf("%d\n",n);

}

}