English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Wie findet man in Java eine kontinuierliche Teilmenge, deren Summe einem gegebenen Zahl entspricht?

Finden Sie eine aufeinanderfolgende Teilergebnisgruppe, deren Summe der angegebenen Zahl entspricht-

  • Durchsuchen Sie das Array.

  • Fügen Sie an jedem Element n Elemente hintereinander hinzu, bis die Summe dem erforderlichen Wert entspricht, und drucken Sie das Teilergebnis aus.

Beispiel

import java.util.Arrays;
import java.util.Scanner;
public class sub_arrays {
   public static void main(String args[]){
      //Lesen des Arrays vom Benutzer
      Scanner sc = new Scanner(System.in);
      System.out.println("Geben Sie die Größe des zu erstellenden Arrays ein:");
      int size = sc.nextInt();
      int[] myArray = new int[size];
      System.out.println("Geben Sie die Elemente des Arrays ein:");
      for(int i=0; i<size; i++{
         myArray[i] = sc.nextInt();
      }
      //Lesen der Zahl
      System.out.println("Geben Sie die erforderliche Summe ein:");
      int reqSum = sc.nextInt();
      System.out.println("Das erstellte Array ist:");+Arrays.toString(myArray);
      System.out.println("sub-Arrays, deren Summe:");+reqSum);
      for(int i=0; i<myArray.length; i++{
         int sum = 0;
         for(int j=i; j<myArray.length; j++{
            sum = sum + myArray[j];
            if(sum == reqSum){
               System.out.println(Arrays.toString(Arrays.copyOfRange(myArray, i, j));+1);
            }
         }
      }
   }
}

Ausgaberesultat

Geben Sie die Größe des zu erstellenden Arrays ein:
10
Geben Sie die Elemente des Arrays ein:
5
4
1
2
3
4
1
4
5
5
Geben Sie die erforderliche Summe ein:
10
Das erstellte Array ist: [5, 4, 1, 2, 3, 4, 1, 4, 5, 5]
sub-Arrays, deren Summe: 10
[5, 4, 1]
[4, 1, 2, 3]
[1, 2, 3, 4]
[2, 3, 4, 1]
[1, 4, 5]
[5, 5]