package com.javarush.task.task04.task0441;
/*
Как-то средненько
*/
import java.io.*;
import java.util.*;
public class Solution
{
public static void main(String[] args) throws Exception
{
//напишите тут ваш код
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String sFirst = br.readLine();
String sSecond = br.readLine();
String sThird = br.readLine();
int nFirst = Integer.parseInt(sFirst);
int nSecond = Integer.parseInt(sSecond);
int nThird = Integer.parseInt(sThird);
System.out.println(middleNumber(nFirst, nSecond, nThird));
}
public static int middleNumber(int a, int b, int c)
{
int tmp;
if (a > b)
{
tmp = a;
a = b;
b = tmp;
}
if (b > c)
{
b = c;
}
if (a > b)
{
b = a;
}
return b;
}
}
Богдан
8 уровень
Объясните пожалуйста код =)
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Roman Novikov
27 ноября 2019, 00:18полезный
import java.io.*; import java.util.*; //добавление библиотек
public class Solution { public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // обьявление буфуре для считывания информации с клавиатуры
String sFirst = br.readLine(); String sSecond = br.readLine(); String sThird = br.readLine();//создание переменных и назначение им данных введенных с клавиатуры
int nFirst = Integer.parseInt(sFirst); int nSecond = Integer.parseInt(sSecond); int nThird = Integer.parseInt(sThird);//парсинг строки к числу,можно сразу писать к каждому int a = Integer.parseInt(br.readLine(имя строки, которую парсим));
System.out.println(middleNumber(nFirst, nSecond, nThird)); }//вызов метода принт, аргументом метода выступает метод middleNum,его результаты будут возвращены
public static int middleNumber(int a, int b, int c) //обьявление метода,в скобках аргументы,то что он принимает от вызывающего класса,требуемое для обработки
{ int tmp; if (a > b) { tmp = a; a = b; b = tmp; } //создание временной переменной tmp , вызов if с аргументами a> b, если верно, присваевает временной переменной значение переменной a, далее бесполезный код, так как метод в любом случае в конце возвращает b (посмотри сортировку пузырьком для понимания как должна использоваться переменнкя такого типа)
if (b > c) { b = c; } //если b больше c, делаем бесполезное действие так как return b;
if (a > b) { b = a; } // аналогичная бесполезная проверка
return b; } } //возвращаем b и выводим на экран.
+1
Богдан
27 ноября 2019, 00:25
парсинг требуется для управления входящими данными ?
0
Богдан
27 ноября 2019, 00:26
можно в личку? у меня есть несколько непониманий с моментом перехода с 4 на 5 уровень. и хотелось бы кого то спросить =(
0
Богдан
27 ноября 2019, 00:27
зачем b присвоил значение tmp / b=tmp
0
Богдан
27 ноября 2019, 00:27
Зачем вообще нужна эта переменная (tmp)
0
Евгений
26 ноября 2019, 23:40
на первом шаге мы делаем так, чтобы второе было больше первого.
На втором шаге мы второе (которое больше первого) сравниваем с третьим. Если второе больше, значит оно самое большое и нас не интересует. Присваиваем на второе место более реального кандидата - последнее число.
А если третье больше, значит это оно - самое большое. И пусть себе остается третьим, мы третье больше рассматривать в любом случае не будем.
Дальше третий шаг. Мы рассматриваем только первое и второе.
Какое-то из них самое маленькое, а какое-то среднее. Понятно, что самое маленькое меньше среднего, вот третьим ифом мы и определяем это. И, если надо, переприсваиваем второе число, чтоб оно было не самым маленьким, то есть средним.
Второе число стало точно средним числом. Его и выводим.
Реально хитрый алгоритм кто-то замутил.
Случаи с == даже пытаться не буду объяснять, убейтесь)
+1
Богдан
27 ноября 2019, 00:29
))) если убрать первое, второе и третье то ничего не останется))
0