1,2,3,4,5,6,8,9
八个数字组成两个四位数,求两个四位数的差的最小值。

解决方案 »

  1.   

    这种东西还是递归吧:        private static int min;
    private static String value;
    public static void main(String[] args) {
    int[] nums = { 1, 2, 3, 4, 5, 6, 8, 9 };
    int[] result = new int[nums.length];
    split(nums, result, 0);
    System.out.println(value); } public static void split(int[] nums, int[] result, int count) {
    if (count == nums.length) {
    int firstNum = result[0] * 1000 + result[1] * 100 + result[2] * 10
    + result[3];
    int secondNum = result[4] * 1000 + result[5] * 100 + result[6] * 10
    + result[7];
    int sub = Math.abs(firstNum - secondNum);
    if (min == 0) {
    min = sub;
    } else {
    if(min>sub){
    value=firstNum+","+secondNum+"==>"+sub;
    min=sub;
    }
    }
    }
    for (int i = 0; i < nums.length; i++) {
    int num = nums[i];
    if (num != 0) {
    result[count] = nums[i];
    nums[i] = 0;
    split(nums, result, count + 1);
    nums[i] = num;
    }
    }
    }输出:4986,5123==>137