Как из трехмерного массива получить одномерный, удовлетворяющий условию задачи?

139
10 декабря 2021, 07:20

В вузе задали задачу на java, подскажите как её решить? Или может какие-нибудь обучающие материалы о том, как решать подобные. Далее текст на английском:

Define a three-dimensional array of ints representing deposits and withdrawals of customers of a bank in and out of their accounts (each customer may have several accounts). For example:

int[][][] opers = {
        {{100, -50, 25}, {150, -300}, {300, -90, 100}},
        {{90, -60, 250}, {300, 20, -100}},
        {{20, 50}, {300}, {20, -20, 40}, {100, -200}}
};
  • the first index indicates a customer;
  • the second index indicates, for a given customer, his/her account;
  • the third index indicates, for a given customer and his/her account, subsequent deposits (positive values) and withdrawals (negative values).

The program should create an array of ints of dimension equal to the number of customers, the elements of which are sums of all deposits and withdrawals for subsequent customers, in and out of all his/her accounts (for the data as in the example above, these should be the numbers 235, 500 and 310).

Answer 1

Тут же очень просто все. Массив нужно создать по количеству клиентов (для данного примера итоговый массив должен быть длиной 3). А вообще:

int[] accounts = new int[opers.length];

Затем в циклах просуммировать с накоплением все числа по каждому клиенту.

accounts[i] += opers[i][j][k];

Надеюсь, этой подсказки должно быть достаточно, чтобы решить задачу.

Answer 2

Суммируем второе и третье измерение трехмерного массива - получаем одномерный массив:

int[][][] opers = {
        {{100, -50, 25}, {150, -300}, {300, -90, 100}},
        {{90, -60, 250}, {300, 20, -100}},
        {{20, 50}, {300}, {20, -20, 40}, {100, -200}}
};
int[] customers = Arrays.stream(opers)
        .mapToInt(arr -> Arrays.stream(arr)
                .mapToInt(row -> Arrays.stream(row).sum())
                .sum())
        .toArray();
System.out.println(Arrays.toString(customers)); // [235, 500, 310]
READ ALSO
нужная форма JButton

нужная форма JButton

мне нужно что бы при нажатии на кнопку JButton открывалась нужая JFrame например у меня есть окно с кнопкой я нажимаю на кнопку и открыается нужная...

84
Помогите, готовлюсь к Олимпиаде

Помогите, готовлюсь к Олимпиаде

Олимпиада ориентирована на Паскаль, но я его плохо знаю, зато знаю JavaОдно из условий на олимпиаде это работа с файлами, то есть в текстовый...

64
Удаление/изменение JAVA_HOME

Удаление/изменение JAVA_HOME

Как удалить в linux ubuntu переменную окружения JAVA_HOME (при том, что jdk/jre не установлены)При попытке изменить переменную через export или удалить ее через...

220
Почему у меня выдает неправильное значение getText().length после setText?

Почему у меня выдает неправильное значение getText().length после setText?

К примеру, setText "abc" выдает длину 248Но когда ввожу вручную всё ок

201