/*
Минимум из введенных чисел
*/
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
Scanner console = new Scanner(System.in);
int min = Integer.MAX_VALUE; // Не понимаю, почему пришлось здесь использовать не Integer.MAX_VALUE, а Integer.MAX_VALUE?
while (console.hasNextInt()) {
int x = console.nextInt();
if (x < min) {
min = x;
}
}
System.out.println(min);
}
}
Евгений
4 уровень
Почему нужно использовать Integer.MAX_VALUE?
Обсуждается
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Jacob
24 ноября 2021, 06:32
Валидатор подтверждает правильность/неправильность решения согласно заложенному в него алгоритму. Алгоритм в первую очередь ориентируется на условие задачи. Поэтому, в первую очередь нужно выполнить условия задачи. Дальше уже можно импортировать и/или улучшать решение.
0
Павел студент на стероидах в Java Syntax Pro beta
5 октября 2021, 01:37
Не обязательно использовать Integer.MAX_VALUE, можно min присвоить первое же введённое значение и уже все остальные сравнивать с ним. Просто в этом случае код чуть усложнится.
А так удобно присвоить заведомо самое большое значение для min и гарантировать что меньше точно не будет среди введенных значений.
+3
Евгений
4 октября 2021, 07:14полезный
все просто, вы присваеваете переменной min максимально большое число Integer, далее вводите с консоле число. Если число с консоли меньше имеещегося в переменной min то переписывается значение. То есть если мы запишим в мин Integer.MIN_VALUE то получим что в переменной min всегда самое маленькое число, а значит вводить с консоли другие яисла не имеет смысла
+5
Евгений
4 октября 2021, 19:18
Спасибо большое, теперь стало понятно.
0
ГоффMaster
5 октября 2021, 08:17
Не устану повторять, что использование этой константы - дурной тон, непонимание процесса и дефективная логика. Почему на джаве раш его педалируют - загадка...
Во-первых, такие константы есть далеко не у всех типов. Что будешь делать без такого костыля?
Во-вторых, если ты внимательно прочитаешь (довольно толковое) объяснение Евгения и его додумаешь, то поймёшь, что он ищет такое число, что бы после первого прохода цикла min гарантировано принял значение первого элемента. Но почему же тогда просто сразу не присвоить min значение первого элемента?
В-третьих, что бы найти минимум (или максимум), надо просто сравнить числа между собой, а не с посторонним искусственно выдуманным числом. Если ты сам получишь такую же задачу, то ты же НЕ будешь сравнивать первое число с каким-то воображаемым максимальным/минимальным, которое ты только можешь вообразить, нет? Ты просто сравнишь первое со вторым, меньшее/большее из них - с третьим, и так далее.
Вывод - инициализировать min (max) надо первым числом из тех, среди которых надо найти минимум/максимум. Использовать константу - это просто бескультурье.
Следующим этапом бескультурья будет сортировка массива для поиска миниимума или маскимума. А чего, один раз вызываешь метод сортировки, он а потом берёшь первый/последний элемент. Скажи, удобно?
+7
Евгений
6 октября 2021, 11:49
Да, мастер! 🙏
0
Настасья
23 ноября 2021, 18:51
Подскажите, пожалуйста, а как сделать "культурно"? Если в подобной задаче "инициализировать min(max) первым числом из тех, среди которых надо найти минимум/максимум", как должен выглядеть код?
0
Сергей
23 ноября 2021, 19:29
Если из примера выше, то можно так:
+2
Настасья
24 ноября 2021, 06:14
спасибо!
0
ГоффMaster
4 декабря 2021, 22:11
С опозданием - был в отъезде, я бы немного вариант Сергея допилил, что бы исключить вываливание в ошибку, если ни одного целого числа не ввели
+3