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

首先循环提取输入数的最低位,维护一个大小为10的数组,判断数组中是否有提取的这个数位。

  • 如果有则把输入数除等于10,继续提取下一数位。
  • 如果没有仍要把输入数除等于10,并将此数位添加到数组中,结果乘10再加上此数位.
  • 提取到最高位即可输出结果
#include<stdio.h>
int main(){
    int num = 0, size = 0,result = 0,flag = 0;
    int arr[10] = {0};
    scanf("%d\n",&num);
    while(num != 0){
        flag = 1;
        for(int i=0; i<size; i++){
            if(num%10 ==arr[i]){
                flag = 0;
                break;
            }
        }
        if(flag){
            size++;
            arr[size-1] = num%10;
            result *= 10;
            result += num%10;
        }
        num/=10;
    }
    printf("%d\n",result);
}

![altalt]