回文数的生成

回文数怎样生成?? 这样来考虑:
  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[]中变是回文数表。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值