[英]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.