算法提高 ADV-83 寻找三位数

来源:互联网 发布:mybatis打印sql语句 编辑:程序博客网 时间:2024/05/16 07:34
问题描述
  将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
  1:2:3的比例,试求出所有满足条件的三个三位数。
  例如:三个三位数192,384,576满足以上条件。
输入格式
  无输入文件
输出格式
    输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。

import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class Main{public static void main(String[] args) {int index = 0;for(int i=111; i<=333; i++){if (method(i)){System.out.println(i+" "+i*2+" "+i*3);}}}public static boolean method(int i){boolean flag = false;  int num1 = i;int num2 = i*2;int num3 = i*3;Set<Integer> set = new HashSet<Integer>();for (int index=0; index<3; index++){set.add(num1%10);set.add(num2%10);set.add(num3%10);num1 = num1/10;num2 = num2/10;num3 = num3/10;}/*Iterator it = set.iterator();int index = 0;while(it.hasNext()){System.out.print(it.next());index++;}System.out.println();System.out.println(index);*/if (set.size()==9 && !set.contains(0)){flag = true;}return flag;}}