排序列表中的数字对

时间:2019-03-08 18:16:01

标签: java

我想编写一个从数字列表中选择数字对的程序。 但是这对应该是最小数和最大数之和。 在下一步中,我要将它们从最小到最大排序,以显示最小和最大的和。 例子1 入口:[1,2,4,8,9] 输出:最小的一对[1,2 = 3],最大的对[8,9 = 17]

如何对数字进行排序?

public class Tabli {
public static void main(String[] args) {

    int[] numbers = {12, 36, 2, 5,12,31};

    int sum0 = numbers[0] + numbers[1];
    System.out.println(sum0);

    int sum1 =numbers[1] +numbers[2];
    System.out.println(sum1);

    int sum2 =numbers[2] +numbers[3];
    System.out.println(sum2);

    int sum3 =numbers[3] +numbers[4];
    System.out.println(sum3);

    int sum4 =numbers[4] +numbers[5];
    System.out.println("End:"+sum4);

    int sum = 0;
    for (int i = 0; i< numbers.length; i++) {

            sum += numbers[i];

        }
    for (int j = 0; j < (numbers.length)-8; j++) {
        sum1 += numbers[j];
        System.out.println("Sum: " + sum);

    }
    System.out.println("Sum: " + sum1);
}

}

2 个答案:

答案 0 :(得分:1)

尝试一下:

int[] numbers = {12, 36, 2, 5,12,31};
int min = numbers[0] + numbers[1]; // instantiate randomly
int max = numbers[0] + numbers[1]; // instantiate randomly
for (int i = 0; i < numbers.length - 1; i++) {
    min = Math.min(numbers[i] + numbers[i + 1], min);
    max = Math.max(numbers[i] + numbers[i + 1], max);
}
System.out.println(min + ", " + max);

则输出为:

  

7,48

此解决方案对于numbers数组的任何长度都有效。

修改

当需要对numbers进行排序时,只需在Arrays.sort(numbers);定义之后添加numbers

答案 1 :(得分:0)

首先对数组进行排序

Arrays.sort(numbers);

因此,最大对是最后2个数字

int max = numbers[numbers.length-1] + numbers[numbers.length-2];

和最小对是前两个数字

int min = numbers[0] + numbers[1];
相关问题