一道题目,用1,2,....9组成三个三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3,输出所有解。
这是我的代码:
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
int i = 0;
for(i = 123 ;3*i <987; i += 1){
HashSet<Integer> set = new HashSet<Integer>();
//此处将abc,efg,hgi的每一位求出放入set中,然后与9比较,来判断其中有没有重复的元素
set.add(i%10);
set.add(i/100);
set.add((i-100*(i/100))/10);
set.add((2*i)%10);
set.add((2*i)/100);
set.add((2*i-100*(2*i/100))/10);
set.add((3*i)%10);
set.add((3*i)/100);
set.add((3*i-100*(3*i/100))/10);
if(set.size()==9){
System.out.println(i);
}
}
}
输出这样的abc有这么几个
192
219
267
273
327
这里判断9个数中有没有重复的元素使用的是set中不允许有重复的元素进行判断。