算法提高 寻找三位数

/*
算法提高 寻找三位数  

问题描述
  将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
  1:2:3的比例,试求出所有满足条件的三个三位数。
  例如:三个三位数192,384,576满足以上条件。
输入格式
  无输入文件
输出格式
  输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。

*/

public class Main {
    public static void main(String args[]) {
        for (int i = 111; i < 333; i++) {
            int j = 2 * i;
            int k = 3 * i;

            int i1 = i / 100, i2 = (i % 100) / 10, i3 = i % 10;
            int j1 = j / 100, j2 = (j % 100) / 10, j3 = j % 10;
            int k1 = k / 100, k2 = (k % 100) / 10, k3 = k % 10;
            if (j1 == 0 || j2 == 0 || j3 == 0 || i1 == 0 || i2 == 0 || i3 == 0 || k1 == 0 || k2 == 0 || k3 == 0)
                continue;
            boolean a[] = new boolean[10];
            a[i1] = true;
            a[i2] = true;
            a[i3] = true;
            a[j1] = true;
            a[j2] = true;
            a[j3] = true;
            a[k1] = true;
            a[k2] = true;
            a[k3] = true;
            boolean flag = true;
            for (int ii = 1; ii < a.length; ii++)
                if (a[ii] == false) {
                    flag = false;
                    break;
                }
            if (flag)
                System.out.println(i + " " + j + " " + k);
        }
    }

}

 

posted @ 2018-03-22 14:48  忧伤的小毛驴  阅读(590)  评论(0编辑  收藏  举报