English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Trova l'array di sottoinsieme contiguo la cui somma è uguale a un numero dato-
Esamina l'array.
Per ogni elemento, aggiungi elementi uno dopo l'altro n volte, quando la somma è uguale al valore richiesto, stampa l'array di sottoinsieme.
import java.util.Arrays; import java.util.Scanner; public class sub_arrays { public static void main(String args[]){ //Leggi l'array dall'utente Scanner sc = new Scanner(System.in); System.out.println("Inserisci la dimensione dell'array da creare: "); int size = sc.nextInt(); int[] myArray = new int[size]; System.out.println("Inserisci gli elementi dell'array:"); for(int i=0; i<size; i++){ myArray[i] = sc.nextInt(); } //Lettura del numero System.out.println("Inserisci la somma richiesta:"); int reqSum = sc.nextInt(); System.out.println("L'array creato è: " + Arrays.toString(myArray)); System.out.println("sottovettori il cui somma è: " + 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))); } } } } }
Risultato di output
Inserisci la dimensione dell'array da creare: 10 Inserisci gli elementi dell'array: 5 4 1 2 3 4 1 4 5 5 Inserisci la somma richiesta: 10 L'array creato è: [5, 4, 1, 2, 3, 4, 1, 4, 5, 5] sottovettori il cui somma è: 10 [5, 4, 1] [4, 1, 2, 3] [1, 2, 3, 4] [2, 3, 4, 1] [1, 4, 5] [5, 5]