Перепишите эти задания на Java: 1. Создайте метод, который принимает не пустой одномерный массив целых чисел. Метод

  • 59
Перепишите эти задания на Java: 1. Создайте метод, который принимает не пустой одномерный массив целых чисел. Метод должен вернуть true, если в массиве существует место, где сумма элементов левой и правой части равна друг другу. Примеры: checkBalance([1, 1, 1, || 2, 1]) → true, checkBalance ([2, 1, 1, 2, 1]) → false, checkBalance ([10, || 10]) → true. Граница отмечена символами ||, эти символы не являются частью массива. 2. Напишите метод, который принимает одномерный массив и число n (положительное или отрицательное). Метод должен сдвинуть все элементы массива на n позиций. Нельзя изменять размер массива.
Sonya
3
1. Чтобы решить эту задачу на Java, создадим метод с названием checkBalance, который принимает одномерный массив целых чисел:

java
public static boolean checkBalance(int[] array) {
// Начальная сумма левой части массива равна 0
int leftSum = 0;
// Начальная сумма правой части массива равна сумме всех элементов массива
int rightSum = Arrays.stream(array).sum();

// Перебираем все индексы массива, кроме последнего
for (int i = 0; i < array.length - 1; i++) {
// Увеличиваем сумму левой части на текущий элемент
leftSum += array[i];
// Уменьшаем сумму правой части на текущий элемент
rightSum -= array[i];

// Проверяем, равны ли суммы левой и правой частей
if (leftSum == rightSum) {
return true; // Если равны, возвращаем true
}
}

return false; // Если не найдено место с равными суммами, возвращаем false
}


В данном решении мы используем две переменные: `leftSum` для хранения суммы левой части массива и `rightSum` для хранения суммы правой части массива. Используем цикл `for`, чтобы перебрать все индексы массива, кроме последнего. На каждой итерации увеличиваем `leftSum` на текущий элемент и уменьшаем `rightSum` на текущий элемент. Если находим место, где сумма левой и правой частей равны, возвращаем `true`, иначе возвращаем `false`.

2. Чтобы решить эту задачу на Java, создадим метод с названием shiftArray, который принимает одномерный массив и число `n`:

java
public static void shiftArray(int[] array, int n) {
// Проверяем, если `n` больше 0, выполняем сдвиг вправо
if (n > 0) {
for (int i = 0; i < n; i++) {
int lastElement = array[array.length - 1];

// Сдвигаем все элементы массива на одну позицию вправо
for (int j = array.length - 1; j > 0; j--) {
array[j] = array[j - 1];
}

array[0] = lastElement;
}
}
// Если `n` меньше 0, выполняем сдвиг влево
else if (n < 0) {
for (int i = 0; i > n; i--) {
int firstElement = array[0];

// Сдвигаем все элементы массива на одну позицию влево
for (int j = 0; j < array.length - 1; j++) {
array[j] = array[j + 1];
}

array[array.length - 1] = firstElement;
}
}
}


В данном решении мы используем цикл `for`, чтобы выполнить сдвиг массива. Если `n` больше 0, то выполняется сдвиг вправо. Мы сохраняем последний элемент массива `lastElement`, а затем сдвигаем все элементы массива на одну позицию вправо. Первому элементу присваиваем `lastElement`. Если `n` меньше 0, то выполняется сдвиг влево. Мы сохраняем первый элемент массива `firstElement`, а затем сдвигаем все элементы массива на одну позицию влево. Последнему элементу присваиваем `firstElement`. Таким образом, все элементы массива будут сдвинуты на `n` позиций.

Надеюсь, эти пошаговые решения помогут вам понять, как написать эти методы на языке Java.