回文数怎样生成?? 这样来考虑:
11 22 33 101 202 313 5566 7788 10001
可由类似这种公式来生成 10001 * n + 1010 * m + 100 * p 五位数
所以我们可以利用这种思路来形成1 - 10^9范围内的回文数表
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[]中变是回文数表。