2.6Kпросмотров
56.3%от подписчиков
25 декабря 2025 г.
Score: 2.8K
🔍 Ответ на задачу про среднее двух чисел 💡 static double average(int x, int y) { return (x + y) / 2;
} 2_000_000_000 + 2_000_000_000 = 4_000_000_000
Но тут будет переполнение int 😱
Потому что тип int в Java ограничен максимумом в 2_147_483_647
4_000_000_000 выходит за пределы, результат сложения будет ОТРИЦАТЕЛЬНЫЙ (из-за переполнения)!
На деле (x + y) станет:
4000000000 - 2*2147483648 = -294967296
Дальше происходит деление -294967296 / 2 = -147483648 🔹 Ответ:
В консоль будет выведено: -147483648.0 ❗️Тут ошибка в логике: надо было привести к long, либо double ДО сложения. Понравилось объяснение? 👍
Ставьте лайк, подписывайтесь и пишите в комментариях, сталкивались ли вы с похожими проблемами!
#java #переполнение #арифметика #middlejava #интервью #java_interview_tasks