// 将1、2、3、4、5、6、7、8、9 这九个数字分成三个百位数,每个数字用且只用一次, // 并且第三个数字是第一个的3倍,第二个数字是第一个的2倍。求三个数。 // [说明,结果可能多于一组,例如327 654 981] public class GetNumbers { /** * The main method. * * @param args * the arguments */ public static void main(String[] args) { System.out.println(getNumbers()); } /** * Gets the numbers. * * @return the numbers */ public static List<Integer> getNumbers() { List<Integer> numbers = new ArrayList<Integer>(); int a = 123, b, c; while (a <= 329) { if (a % 5 == 0) { a++; } b = a * 2; c = a * 3; getWei(a, 0); getWei(b, 3); getWei(c, 6); if (comp()) { numbers.add(a); } a++; } return numbers; } static int[] b = new int[9]; public static void getWei(int number, int i) { b[i] = number / 100; b[i + 1] = number / 10; b[i + 1] = b[i + 1] % 10; b[i + 2] = number % 100; b[i + 2] = b[i + 2] % 10; } public static boolean comp() { int i = 0, j = 9, k = 0; for (; k < 9; k++) { for (i = 0; i < j - 1; i++) { if (b[i] == b[j - 1]) { return false; } } j--; } return true; } }