题解 | #提取不重复的整数#
提取不重复的整数
http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
解题思路:
既然是从右向左读取每一位上的数,可以采用取模和取商来获取“当前个位”上的数字和更新数字。每次将输入结果num % 10就可以获得当前num个位上的数字,实现从右向左;然后更新num = num / 10,这样下次取得“个位”,实际是之前的十位;依次类推,直到num=0,表示将所有位的数字都取出了。
将数字放到Set集合当中,这样可以避免重复,也是降重经常考虑的方式。
import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
Set<Integer> set = new HashSet<>();
int count = 0;
while(num != 0) {
int last = num % 10;
if(!set.contains(last)) {
set.add(last);
count = count * 10 + last;
}
num = num / 10;
}
System.out.println(count);
}
}