- Постановка задачи
- Входные и выходные данные
- Выбор структуры данных
- Алгоритм
- Программа
- Анализ правильности решения
- Условия задачи
На вход программы подается четыре различных целых числа. Вывести на экран число, которое меньше одного и больше двух других чисел (то есть, это число в отсортированной последовательности стояло бы третьим).
-
Требуется получить на вход четыре числа и вывести число, которое стояло бы третьим в отсортированном списке из полученных чисел
Входные данные:
- четыре целых числа
- диапазон значений не задан
Выходные данные:
- одно целое число
- диапазон значений не задан
Целое число, у которого не задана верхняя граница. Лучше всего подходит long, т.к. этот тип данных имеет самый большой диапазон значений.
- Запись четырёх чисел в переменные n1, n2, n3, n4.
- Инициализация булевой переменной "f".
- Проверяю, является ли текущее "n" ответом.
- Если условие задачи выполняется, f = true.
- Если f, то вывести "n".
- Повтор алгоритма для следующего "n".
- Если "n1", "n2", "n3" не подходят, вывести "n4".
graph TD
A[Начало] --> B[Считать n1, n2, n3, n4]
B --> C{Проверка n1}
C -->|n1 > n2 и n1 > n3 и n1 < n4| D[Вывести n1]
C -->|n1 > n4 и n1 > n3 и n1 < n2| D
C -->|n1 > n4 и n1 > n2 и n1 < n3| D
C --> E{Проверка n2}
E -->|n2 > n1 и n2 > n3 и n2 < n4| F[Вывести n2]
E -->|n2 > n4 и n2 > n3 и n2 < n1| F
E -->|n2 > n4 и n2 > n1 и n2 < n3| F
E --> G{Проверка n3}
G -->|n3 < n1 и n3 > n2 и n3 > n4| H[Вывести n3]
G -->|n3 < n4 и n3 > n2 и н3 > н1| H
G -->|n3 < н2 и н3 > н1 и н3 > н4| H
G --> I[Вывести n4]
D --> J[Конец]
F --> J
H --> J
I --> J
import java.util.Scanner;
import java.io.PrintStream;
public class Main {
public static Scanner in = new Scanner(System.in);
public static PrintStream out = System.out;
public static void main(String[] args) {
long n1 = in.nextLong();
long n2 = in.nextLong();
long n3 = in.nextLong();
long n4 = in.nextLong();
// Проверяем, является ли n1 подходящим
boolean f = false;
if (n1 > n2 && n1 > n3 && n1 < n4) {
f = true;
} else if (n1 > n4 && n1 > n3 && n1 < n2) {
f = true;
} else if (n1 > n4 && n1 > n2 && n1 < n3) {
f = true;
}
// Если n1 подходит, выводим его
if (f) {
out.println(n1);
}
// Проверяем, является ли n2 подходящим
else {
if (n2 > n1 && n2 > n3 && n2 < n4) {
f = true;
} else if (n2 > n4 && n2 > n3 && n2 < n1) {
f = true;
} else if (n2 > n4 && n2 > n1 && n2 < n3) {
f = true;
}
// Если n2 подходит, выводим его
if (f) {
out.println(n2);
}
// Проверяем, является ли n3 подходящим
else {
if (n3 < n1 && n3 > n2 && n3 > n4) {
f = true;
} else if (n3 < n4 && n3 > n2 && n3 > n1) {
f = true;
} else if (n3 < n2 && n3 > n1 && n3 > n4) {
f = true;
}
// Если ни одно из предыдущих условий не выполнено, выводим н4
if (f) {
out.println(n3);
} else {
out.println(n4);
}
}
}
}
}
- Тест
-
Input:
3 2 1 4
-
Output:
3
- Тест
-
Input:
1 3 2 4
-
Output:
3
- Тест
-
Input:
1 2 3 4
-
Output:
3
- Тест
-
Input:
1 2 4 3
-
Output:
3