题解 | #提取不重复的整数#
提取不重复的整数
http://www.nowcoder.com/questionTerminal/253986e66d114d378ae8de2e6c4577c1
提取不重复的整数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]); } }