Java - Масиви


1

Здравейте! Имам нужда от помощ относно една задача. Става въпрос за масиви в книгата Introduction to programing with java. Задачата е 9: да се напише програма, която намира последователност от числа в масив, които имат сума равна на число, въведено от конзолата (ако има такава). Пример: {4, 3, 1, 4, 2, 5, 8}, S=11  {4, 2, 5}.  

Благодаря!




Отговори



1
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Tests {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int[] array = {4, 3, 1, 4, 2, 5, 8, 3, 5, 6, 2, 3};
int sum = 11;//  {4, 2, 5}.

for1:
for (int i = 0; i < array.length; i++) {
List<Integer> list = new ArrayList<>();
for2:
for (int j = i; j < array.length; j++) {
list.add(array[j]);
int currentSum = list.stream().mapToInt(Integer::intValue).sum();
if (currentSum == sum) {
System.out.println(list);
//break for1;
break for2;
} else {
continue for2;
}
}
}
}
}

от Oksana (52 точки)


1
Ако искаш да има отговор само 

{4, 2, 5}, тогава трябва да използваш само - break for1, сега има всички възможни варианти


от Oksana (52 точки)

0

Здравей! Можеш ли да ми кажеш как да я реша, без да използвам списък и методи, понеже не съм стигнал до тях и ми е доста трудно да осмисля този код.

Благодаря!