package com.javarush.task.task04.task0420;
/*
Сортировка трех чисел
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
System.out.println(max + " "+ ser + " " + min);
}
public static int Min(int a,int b,int c){
if (a<=b && a<=c) return a;
if (b<=a && b<=c) return b;
if (c<=a && c<=b) return c;
else return 0;
}
public static int Max(int a,int b,int c){
if (a>=b && a>=c) return a;
if (b>=a && b>=c) return b;
if (c>=a && c>=b) return c;
else return 0;
}
public static int Seredina(int a,int b,int c){
if ((a<=b | a<=c) && (a>=b | a>=c)) return a;
if ((b<=a | b<=c) && (b>=c | b>=a)) return b;
if ((c<=a | c<=b) && (c>=a | c>=b)) return c;
else return 0;
}
}
Задача - Сортировка трех чисел. Богдан
8 уровень
Можно ли упростить решение данной задачи, убрал переменные, кто шарит - поймет. Ищу наставника =)
Решен
Комментарии (24)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей Яковлев
26 ноября 2019, 12:59
Короче только через массивы.
0
Алексей Яковлев
26 ноября 2019, 12:51
Так сойдет?
+2
Богдан
26 ноября 2019, 13:27
смотри, этот код, нормальный?
0
Богдан
26 ноября 2019, 13:28решение
Ввести с клавиатуры три целых числа. Вывести на экран количество положительных чисел среди этих трех.
Примеры:
а) при вводе чисел
-4
6
6
получим вывод
2
+2
Алексей Яковлев
26 ноября 2019, 13:32
Код работает. Значит нормальный:)
Хотя ноль тоже положительное число...
+1
Ksenia Volkova Java Developer в DXC Master
26 ноября 2019, 14:02
Совсем скоро будут циклы, и можно будет оптимизировать, например, типа такого:
+1
Ksenia Volkova Java Developer в DXC Master
26 ноября 2019, 11:26
Достаточно определить минимум и максимум. Зная их, легко вычислить середину.
0
Богдан
26 ноября 2019, 11:31
а если середина будет равна максимуму или минимуму?
0
hidden #598481
26 ноября 2019, 11:32
а что это изменит?
0
Богдан
26 ноября 2019, 11:34
так что вы предлагаете, я суть представляю, но в коде пока не могу это изобразить
0
Богдан
26 ноября 2019, 11:35
я хотел узнать, есть ли еще какие-либо способы для уменьшения самого кода, но при этом чтобы логические операции были мне понятны ( а то есть некоторые моменты, которые я пока еще не до конца осознал)
0
hidden #598481
26 ноября 2019, 11:51
Ну например середина = сумма - максимум - минимум
0
Богдан
26 ноября 2019, 12:04
для такого выражения требуется сделать класс по сумме, по максимуму и по минимуму, так ?
0
Ksenia Volkova Java Developer в DXC Master
26 ноября 2019, 12:12
У нас есть исходные a, b, c, а также вычисленные max и min.
Значит, середина будет равна a + b + c - max - min.
И это будет верно, даже если она равна максимуму или минимуму, или если они все равны.
+3
Богдан
26 ноября 2019, 12:17
да! круто)
а еще каким то образом можно было бы упростить выражение условий if ?
0
Ksenia Volkova Java Developer в DXC Master
26 ноября 2019, 12:20
Можно. Например, написать методы для нахождения минимума/макисмума из двух чисел, и с их помощью находить минимум из 3-х.
Или воспользоваться существующими Math.min() и Math.max()
0
Богдан
26 ноября 2019, 12:27
узнав минимум из двух чисел три раза, мы определяем у кого самый самый минимум ?)
p.s.
я пока не знаю, о таким методах как Math.min() && Math.max() но обязательно к ним приду)
0
Ksenia Volkova Java Developer в DXC Master
26 ноября 2019, 12:30
Узнавать минимум достаточно 2 раза: 1) из a и b, 2) из первого результата и c.
0
Сергей
29 ноября 2019, 09:46
Спасибо (a + b + c - max - min) решило все вопросы, ведь вроде как понятно(школьно). а два часа убито на нахождение середины.
0
YuriyExpert
26 ноября 2019, 11:22
Можно.
0
Богдан
26 ноября 2019, 11:24
спасибо за ответ =DDD
0
YuriyExpert
26 ноября 2019, 11:30
Какой вопрос)
Как минимум else в строках 21, 27 и 33 можно убрать, т.к. он абсолютно ни на что не влияет. А вот вместо последовательных if стоит использовать if-else - будет проще и нагляднее.
0
Богдан
26 ноября 2019, 11:32
в след. раз буду писать вопрос более продуманно )
есть какая либо разница в нагрузке программу от if или if / else.
p.s. можно ли тут было использовать switch/case ?
0
YuriyExpert
26 ноября 2019, 11:37
Использовать что угодно можно. В таком объеме вычислений производительность и ресурсозатраты принципиальной роли не играют.
Тот же минимум из 3 числе легко выражается через минимум из 2 - воспринимать и отлаживать такой вариант гораздо проще, чем последовательные if.
0