Как вообще происходит процесс переворачивания ибо даже в дебаги отлаживаю и не могу понять зачем в цикле делить на 2 а потом ещё делать вычетание
for (int i = 0; i < array.length / 2; i++) {
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
Anonymous #3555639
34 уровень
Объясните смысл решения
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
9 июня 2025, 08:03
Ну так сам ответь себе на вопрос что именно происходит внутри тела цикла. Никакой магии там нет, можно взять листик, блокнот и порисовать, если визуализировать "в уме" не получается.
Как разберёшься с этим вопросом - попробуй убрать деление пополам или вычитание и посмотри что получится. Ошибку можно погуглить.
0
Anonymous #3555639
9 июня 2025, 07:30
так сказать оъясните на пальцах
0
Александр Ф
9 июня 2025, 16:04
int temp = array[i]; //создаётся переменная и ей присваивается значение массива под индексом i (воспринимай с начала как 0 )
array[i] = array[array.length - i - 1];//значению i присваивается значение с обратной стороны массива. Последнее значение массива это не "array[array.length]", а "array[array.length-1]", потому что индексы идут с НУЛЯ. В квадратных скобках происходит ВЫЧИСЛЕНИЕ индекса.
array[array.length - i - 1] = temp;//значению с обратной стороны присваивается значение переменной. Вот реально, возьми бумагу, нарисуй, а также пронаблюдай в debug то, что я тебе написал и сам всё поймёшь, деление в том числе.
+1