一道题目,用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中不允许有重复的元素进行判断。