回文数怎样生成?? 这样来考虑:
11 22 33 101 202 313 5566 7788 10001
可由类似这种公式来生成 10001 * n + 1010 * m + 100 * p 五位数
所以我们可以利用这种思路来形成1 - 10^9范围内的回文数表
代码如下:
Palind[]中变是回文数表。
11 22 33 101 202 313 5566 7788 10001
可由类似这种公式来生成 10001 * n + 1010 * m + 100 * p 五位数
所以我们可以利用这种思路来形成1 - 10^9范围内的回文数表
代码如下:
int Palind[1000000],pnum=1;
int n,m,k,p,q;
for(n=1;n<=9;n++)
Palind[pnum++]=n;
for(n=1;n<=9;n++)
Palind[pnum++]=11*n;
for(n=1;n<=9;n++)
for(m=0;m<=9;m++)
Palind[pnum++]=101*n+10*m;
for(n=1;n<=9;n++)
for(m=0;m<=9;m++)
Palind[pnum++]=1001*n+110*m;
for(n=1;n<=9;n++)
for(m=0;m<=9;m++)
for(k=0;k<=9;k++)
Palind[pnum++]=10001*n+1010*m+100*k;
for(n=1;n<=9;n++)
for(m=0;m<=9;m++)
for(k=0;k<=9;k++)
Palind[pnum++]=100001*n+10010*m+1100*k;
for(n=1;n<=9;n++)
for(m=0;m<=9;m++)
for(k=0;k<=9;k++)
for(p=0;p<=9;p++)
Palind[pnum++]=1000001*n+100010*m+10100*k+1000*p;
for(n=1;n<=9;n++)
for(m=0;m<=9;m++)
for(k=0;k<=9;k++)
for(p=0;p<=9;p++)
Palind[pnum++]=10000001*n+1000010*m+100100*k+11000*p;
for(n=1;n<=9;n++)
for(m=0;m<=9;m++)
for(k=0;k<=9;k++)
for(p=0;p<=9;p++)
for(q=0;q<=9;q++)
Palind[pnum++]=100000001*n+10000010*m+1000100*k+101000*p+10000*q;
Palind[]中变是回文数表。