c语言求自我拷贝数(一个自然数各个数字从大到小排列减去从小到大排列仍是他本身)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int i,a,b,c,d,t;
    int k,j,s;
    for(i=10;i<10000;i++)
    {
        if(i<100)
        {
         a=i/10;
         b=i%10;
         k=a*10+b;
         j=a+b*10;
         s=abs(k-j);
         if(s==i){printf("%d",s);
         break;}
        }
         if(i<1000&&i>=100)
            {a=i/100;
             b=i/10-a*10;
             c=i%10;
             if(a>b)
             {t=a;
              a=b;
              b=t;
             }
             if(a>c)
                {t=a;
                 a=c;
                 c=t;
                }
             if(b>c)
             {t=b;
              b=c;
              c=t;
             }
             k=a*100+b*10+c;
             j=c*100+b*10+a;
             s=abs(k-j);
             if(s==i){printf("%d",s);
             break;}
            }
          if(i>=1000)
            {a=i/1000;
             b=i/100-a*10;
             c=i/10-b*10-a*100;
             d=i%1000;
          if(a>b)
         {t=a;
       a=b;
       b=t;
         }
       if(a>c)
        {t=a;
      a=c;
      c=t;
        }
       if(a>d)
       {t=a;
     a=d;
     d=t;
       }
       if(b>c)
       {t=b;
     b=c;
     c=t;
       }
       if(b>d)
         {t=b;
    b=d;
    d=t;
      }
       if(c>d)
      {t=c;
    c=d;
    d=t;
      }
          k=a*1000+b*100+c*10+d;
          j=d*1000+c*100+d*10+a;
          s=abs(k-j);
             if(s==i){printf("%d",s);}
             break;}
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值