题解 | #提取不重复的整数#
提取不重复的整数
http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
int main(){
int data = 0;
scanf("%d", &data);
int map[10] = {0};
while (data != 0) { // 判断是否处理了最高位
int temp = data%10;
if (map[temp] == 0) { // 判断这一位 是否已经出现过
map[temp]++;
printf("%d", temp);
}
data = data/10; // 个位 -> 十位 -> 百位
return 0;
}
思路: 1.定义map[]数组,用来标记,map[]=0代表没出现过,map[]=代表已出现过, 若没出线过,则更改值为1,并输出; 若出现过(代表已经输出过),则本次while循环什么都不做,进入下一次的while循环,判断尾数。 2.定义data用来接收数字 每次%10代表求最后一位数 每次/10代表截去本次尾数,为求下一次尾数做准备。 3.while循环条件是判断是否循环到了最高位。