簡體   English   中英

在數組中查找數字的所有可能和

[英]Finding all possible sums of a number in an array

假設我有一個int[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}數組。 我想顯示數組,然后要求輸入以選擇一個數字並打印出從該數組中生成該數字的所有可能性。

例如,輸入是 10
預期結果:1+9、2+8... 1+2+7、1+3+6...1+2+3+5...

public class Detyra35 {

    private int[] unsortedNumbers;

    public Detyra35(int[] unsortedNumbers) {
        this.unsortedNumbers = unsortedNumbers;
    }

    public int[] sorted() {
        int[] sortedNumbers = Arrays.copyOf(this.unsortedNumbers, this.unsortedNumbers.length);
        Arrays.sort(sortedNumbers);
        return sortedNumbers;
    }


    public void allSumsOfIndex(int index, int a){
        Detyra35 recursion= new Detyra35(unsortedNumbers);
        for (int i=a; i<index; i++){
            if(unsortedNumbers[i]+(unsortedNumbers[i+1])==index){
                System.out.println(unsortedNumbers[i]+" + " +unsortedNumbers[i+1]+" = "+index);
            }
            recursion.allSumsOfIndex(index,a+1);
        }
    }

    public class Main {
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        //Pass the array into the constructor
        int[] oneToTenArray= {1,2,3,4,5,6,7,8,9,10};
        Detyra35 oneToTen= new Detyra35(oneToTenArray);
        //sort the array and print it so can pick the input
        oneToTen.sorted();
        System.out.println(Arrays.toString(oneToTenArray));
        System.out.println("Enter the number you want to check all possibilities of sum");
        int choice= scanner.nextInt();
        //call the method to check all sums 0
        oneToTen.allSumsOfIndex(choice,0);
    }

我嘗試的是調用一個方法並傳遞輸入值。 allSumsOfIndex我試圖做一些事情,但我無法弄清楚 if 邏輯,並在網上閱讀了一些關於遞歸的內容,但不知道如何實現它。

 function sums(arr, sum) { let pairs = []; let numList = []; for (let i = 0; i < arr.length; i++) { let currNum = arr[i]; let diff = sum - currNum; if (numList.includes(diff)) { pairs.push([currNum, diff]); } numList.push(currNum); } return pairs; } let num = 10; let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; console.log(sums(arr,num));

暫無
暫無

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

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