
Помогите пожалуйста сделать эти задания на 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)
/// Написать метод, в который передается не пустой одномерный целочисленный массив,
// метод должен вернуть true если в массиве есть место, в котором сумма левой и правой части
// массива равны. Примеры: checkBalance([1, 1, 1, || 2, 1]) → true, checkBalance ([2, 1, 1, 2, 1]) →
// false, checkBalance ([10, || 10]) → true, граница показана символами ||, эти символы в массив не
// входят.
public class Homework {
public static void main(String args[]) {
int[] mass = new int [6];
for (int i=0; i <6; i ++) {
if (i == 0) {
mass[0] = 1;
}
if (i == 1) {
mass[1] = 3;
}
if (i == 2) {
mass[2] = 2;
}
if (i == 3) {
mass[3] = 1;
}
if (i == 4)
{
mass[4] = 2;
}
if (i == 5) {
mass[5] = 4;
}
int p;
int q;
p = mass [0] + mass[1] + mass [2];
q = mass [3] + mass [4] + mass [5];
switch (p-q) {
case 0:
System.out.println("true");
break;
case 1:
System.out.println("false");
break;
case -1:
System.out.println("OMG - false");
break;
}
}
}
}



Конечно, я помогу вам написать эти методы на Java. Вот решения для обоих задач:
- Метод для проверки баланса:
javapublic class ArrayBalance {
public static void main(String[] args) {
int[] array1 = {1, 1, 1, 2, 1};
int[] array2 = {2, 1, 1, 2, 1};
int[] array3 = {10, 10};
System.out.println(checkBalance(array1)); // true
System.out.println(checkBalance(array2)); // false
System.out.println(checkBalance(array3)); // true
}
public static boolean checkBalance(int[] array) {
for (int i = 0; i < array.length; i++) {
int leftSum = 0;
int rightSum = 0;
// Calculate the sum of elements on the left side of the current position
for (int j = 0; j < i; j++) {
leftSum += array[j];
}
// Calculate the sum of elements on the right side of the current position
for (int j = i; j < array.length; j++) {
rightSum += array[j];
}
// Check if the sums are equal
if (leftSum == rightSum) {
return true;
}
}
return false;
}
}
- Метод для циклического сдвига массива:
javapublic class ArrayShift {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int n = 2;
shiftArray(array, n);
for (int num : array) {
System.out.print(num + " ");
}
}
public static void shiftArray(int[] array, int n) {
int length = array.length;
n = n % length; // Ensure n is within the array length
if (n < 0) {
n += length; // Convert negative shift to positive
}
reverse(array, 0, length - 1); // Reverse the entire array
reverse(array, 0, n - 1); // Reverse the first part
reverse(array, n, length - 1); // Reverse the second part
}
public static void reverse(int[] array, int start, int end) {
while (start < end) {
int temp = array[start];
array[start] = array[end];
array[end] = temp;
start++;
end--;
}
}
}
Обратите внимание, что второй метод использует обратное вращение для выполнения сдвига элементов массива без использования дополнительных массивов.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili