提取不重复的整数C语言解法。

1.先通过求余算出获得输入数据的位数。
2.然后通过位数将数据的每一位拆出来。
3.将数据逆序。
4.将数据去重。
前两步显得有点笨重,但是易于理解。

#include<stdio.h>


int num,bit;
int i,j,k;
int extra;
int reg[20],asb;
int flag = 0;
int main()
{

    scanf("%d\n",&num);//输入整型数

    //获得数量级
    for(bit = 1; extra < num ;bit = bit*10)
    {
        extra = num%bit;//求余得除数
    }
    bit = bit/100;
        //;

    //将数据按位拆开
    for(i= 0;bit >= 1;bit = bit/10,i++)
    {
        reg[i] = num/bit;        
        num = num - bit*reg[i];
        flag++;
    }



     //逆序
   int  pau = flag-1;

    for(i = 0;i<flag/2;i++,pau--)
    {
        asb = reg[i];
        reg[i] = reg[pau];
        reg[pau] = asb;
    }

    //去重
      for(i = 0 ;i < flag ;i++)
      {
          for(j = i+1;j<flag;j++)
          {
              if(reg[i]==reg[j])
              {
                  for(k=j;k<flag;k++)
                  {
                      reg[k]=reg[k+1];
                  }

              j--;
              flag--;
              }
          }

      }


        for(j=0;j<flag;j++)
    {
        printf("%d",reg[j]);

    }






}