Аналіз алгоритму
Розглянемо рішення за допомогою повного перебору, використовуючи умовний оператор. Середнім числом серед , , буде:
, якщо або ;
, якщо або ;
, якщо або .
Розглянемо рішення з використанням функцій мінімуму та максимуму. Середнім числом серед , , буде .
Розглянемо рішення з використанням сортування. Прочитаємо три числа в масив довжиною 3 та відсортуємо його. Середній елемент масиву є середнім серед трьох чисел.
Реалізація алгоритму
Читаємо вхідні дані. Обчислюємо відповідь за формулою та виводимо її.
scanf("%d %d %d", &a, &b, &c); if ((b <= a && a <= c) || (b >= a && a >= c)) res = a; else if ((a <= b && b <= c) || (a >= b && b >= c)) res = b; else res = c; printf("%d\n", res);
Реалізація алгоритму – за допомогою min і max
#include <stdio.h> int a, b, c, res; int min(int x, int y) { return (x < y) ? x : y; } int max(int x, int y) { return (x > y) ? x : y; } int main(void) { scanf("%d %d %d", &a, &b, &c); res = a + b + c - min(a, min(b, c)) - max(a, max(b, c)); printf("%d\n", res); return 0; }
Реалізація алгоритму – за допомогою сортування
#include <cstdio> #include <algorithm> using namespace std; int m[3]; int main(void) { scanf("%d %d %d", &m[0], &m[1], &m[2]); sort(m, m+3); printf("%d\n", m[1]); return 0; }
Java реалізація
import java.util.*; public class Main { static int min(int x, int y, int z) { return Math.min(x, Math.min(y, z)); } static int max(int x, int y, int z) { return Math.max(x, Math.max(y, z)); } public static void main(String[] args) { Scanner con = new Scanner(System.in); int a = con.nextInt(); int b = con.nextInt(); int c = con.nextInt(); int res = a + b + c - max(a, b, c) - min(a, b, c); System.out.println(res); con.close(); } }
Python реалізація
a, b, c = map(int, input().split()) res = a + b + c - min(a, b, c) - max(a, b, c) print(res)