Переупорядочьте массив на Java
Информатика

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

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

    1. Проверка баланса массива:
    - Создайте метод `checkBalance`, который принимает одномерный массив типа `int` в качестве параметра.
    - В методе определите переменную `leftSum` и установите ее равной нулю.
    - Используя цикл `for`, пройдите по массиву от начала до конца:
    - Увеличивайте `leftSum` на значение текущего элемента массива.
    - Объявите переменную `rightSum` и установите ее равной нулю.
    - Используя еще один цикл `for`, пройдите по массиву с конца к началу:
    - Увеличивайте `rightSum` на значение текущего элемента массива.
    - Проверьте, равны ли `leftSum` и `rightSum`. Если да, верните `true`.
    - Если циклы завершились без нахождения равных сумм, верните `false`.

    2. Сдвиг элементов массива:
    - Создайте метод `shiftArray`, который принимает одномерный массив типа `int` и число `n` в качестве параметров.
    - Если `n` положительное, выполните следующие действия:
    - Объявите временный массив `temp` того же размера, что и исходный массив.
    - Скопируйте элементы исходного массива в `temp` с позиции `n` до конца.
    - Скопируйте элементы исходного массива в `temp` с начала до позиции `n`.
    - Присвойте исходному массиву значения из `temp`.
    - Если `n` отрицательное, выполните аналогичные действия, но в обратном порядке.

    Доп. материал:
    java
    // Пример использования метода checkBalance
    int[] array1 = {1, 1, 1, 2, 1};
    System.out.println(checkBalance(array1)); // Вывод: true

    int[] array2 = {2, 1, 1, 2, 1};
    System.out.println(checkBalance(array2)); // Вывод: false

    int[] array3 = {10, 10};
    System.out.println(checkBalance(array3)); // Вывод: true

    // Пример использования метода shiftArray
    int[] array4 = {1, 2, 3, 4, 5};
    shiftArray(array4, 2);
    System.out.println(Arrays.toString(array4)); // Вывод: [4, 5, 1, 2, 3]

    int[] array5 = {1, 2, 3, 4, 5};
    shiftArray(array5, -1);
    System.out.println(Arrays.toString(array5)); // Вывод: [2, 3, 4, 5, 1]


    Совет:
    Для лучшего понимания работы методов, вы можете протестировать их с различными значениями массивов и параметров `n`.

    Дополнительное задание:
    Напишите метод на Java, который принимает одномерный целочисленный массив и возвращает true, если в массиве есть два числа, сумма которых равна заданному числу `sum`. В противном случае, верните `false`.

    java
    public static boolean checkSum(int[] array, int sum) {
    // Ваше решение здесь
    }
Написать свой ответ: