Минимум четырех чисел

  • 7
  • Недоступна
В комнате сидело четверо уставших ковбоев. Каждый из них должен опустить руку в сосуд и извлечь из него номер. Тот из четверых, кому достанется самое маленькое число, должен сходить за скотчем (это напиток такой, а не клейкая лента). Помогите ребятам найти крайнего: найдите минимум из четырех чисел.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (252)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Maric Theirin5 уровень, Москва
среда, 20:39
После задачи на нахождение минимума трех чисел, на эту задачу понадобилось меньше попыток. Прогресс!
Михаил3 уровень, Минск
17 февраля, 11:23
public static int min(int a, int b, int c, int d) { min(a , b); min(c , d); Ребята как перенести результат min(a,b); и min(c, d); в отдельные переменные? Я имею ввиду как это записать?
Mikhail4 уровень, Москва
среда, 13:36
Ввести новые переменные int z; z=min(a,b); как вариант или же присвоить значения min(a,b); b min(c,d); уже имеющимся переменным "a" и "b" a=min(a,b); итд
S.Cat3 уровень
15 февраля, 12:16
Хорошая задачка, реально было интересно. Только кто бы объяснил вначале что min() это самостоятельная функция
Pavel Mironov (Miroha)16 уровень, Москва
28 января, 11:43
Сначала напишем функцию (метод) для сравнения двух чисел с использованием тернарного оператора:
public static int min(int a, int b) {
    return a < b ? a : b;
 }
Если a меньше чем b, возвращаем a, иначе b. Далее напишем функцию (метод) для сравнения четырех чисел:
public static int min(int a, int b, int c, int d) {
     return (min(a,b) < min(c, d)) ? (min(a,b)) : min(c, d);
 }
Что мы делаем? Внутри этого метода мы вызываем уже написанный метод для сравнения двух чисел. Таким образом мы получаем минимум из a и b. И сравниваем это минимальное с минимальным из пары c и d. Соответственно, мы узнаем какое число наименьшее из четырех. Так, если минимальное из пары a - b меньше, чем минимальное из пары c-d, возвращаем минимальное из пары a-b, иначе минимальное из пары c-d.
Dmitriy Zinevich4 уровень, Санкт-Петербург
9 февраля, 09:13
Если я учу Java с нуля, то должен ли написать такой код? Или через кучу вложенных if/else пока тоже нормально?
Pavel Mironov (Miroha)16 уровень, Москва
9 февраля, 13:01
Абсолютно нормально. Всё приходит с опытом и освоенными инструментами.
Matvei3 уровень
17 февраля, 18:59
Элегантно однако..
Maric Theirin5 уровень, Москва
среда, 20:41
тернарный оператор?))
Glock3 уровень, Энгельс
суббота, 15:03
нужно запомнить этот крутой код)
Дмитрий Романюк14 уровень, Санкт-Петербург
14 января, 10:49
это всё называется оверлоадинг насколько понимаю
Дмитрий Романюк14 уровень, Санкт-Петербург
14 января, 10:43
из четырех оказалось даже проще чем из трех с помощью if else. используя метод min(a,b) находим сначала наименьшее между a,b - потом наименьшее между c,d. Потом эти два наименьших сравниваем и возвращаем.
Kirill20 уровень, Кировск
12 января, 17:47
так то не сложно всё это пока что... return min(min(min(a, b), c), d); а метод min мы уже ранее должны были сделать :) и не обязательно Math пользовать, вообще не понятно, зачем оно тут пока ))
Руслан2 уровень, Стерлитамак
18 февраля, 06:38
Это васче законно так писать?)))
игорь12 уровень, Минск
7 января, 15:06
Написал так, работает, но не понимаю как! Откуда, при обращении к функции min(a, b, c, d) нам становится известно значение min(a, b)?! Не хотелось бы упустить какой-нибудь нюанс в самом начале) public class Solution { public static int min(int a, int b, int c, int d) { if (min(a, b) < c && min(a, b) < d) return min(a, b); else if (c < d) return c; else return d; } public static int min(int a, int b) { if (a < b) return a; else return b; } public static void main(String[] args) throws Exception { System.out.println(min(-20, -10)); System.out.println(min(-40, -10, -30, 40)); System.out.println(min(-20, -40, -30, 40)); System.out.println(min(-20, -10, -40, 40)); System.out.println(min(-20, -10, -30, -40)); } }
Alex3 уровень
6 февраля, 11:28
Взглянул на код и понял как сделать) Спасибо))
Иван Обелянцев3 уровень, Ейск
26 декабря 2019, 22:42
подсказка, которой мне не хватало. Если решать честно, через если-то, нам не обойтись без объявления переменных. Объявим любые три переменные (v1, v2, v3); v1 присваиваем значение из части min(int a, intb), а в первой части программы уже используем это значение при сравнении с другими переменными, (можно проще, но это условие задачи, использовать метод min(int a, int b), так вот чтобы согласовывались обе части ОБЯЗАТЕЛЬНО в начале класса нужно при объявлении переменной v1 присвоить ей значение int v1 = min (a,b); таким образом мы обращаемся к методу public static int min(int a, int b); вычисление v1 происходит именно здесь.
Екатерина3 уровень
4 января, 16:30
Огромное спасибо!
foreve_alone22 уровень, Одесса
25 декабря 2019, 16:54
Получилось решить через использование 3 Math.min