簡體   English   中英

排序列表中的數字對

[英]sorting pairs of numbers in the list

我想編寫一個程序,從數字列表中選擇數字對。 但是這對應該是最小數字的總和和最大數字的總和。 在下一步中,我想將它們從最小到最大排序,以顯示最小數字的總和和最大數字的總和。 示例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);
}
}

嘗試這個:

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定義之后。

首先對數組進行排序

Arrays.sort(numbers);

因此最大對是最后兩個數字

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

最小對是前兩個數字

int min = numbers[0] + numbers[1];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM