public class MedianOfThree {
/**
* Computes the median of three integers.
* The median is the value that is neither the minimum nor the maximum.
* Formula:
* median = a + b + c - min(a, b, c) - max(a, b, c)
*/
public static int medianOfThreeNumbers(int a, int b, int c) {
// Determine the minimum of the three numbers
int min = a;
if (b < min) min = b;
if (c < min) min = c;
// Determine the maximum of the three numbers
int max = a;
if (b > max) max = b;
if (c > max) max = c;
// The median is the remaining value
return a + b + c - min - max;
}
public static void main(String[] args) {
// Test cases
System.out.println("The median of [1, 1, 1] is " +
medianOfThreeNumbers(1, 1, 1));
System.out.println("The median of [10, 3, 7] is " +
medianOfThreeNumbers(10, 3, 7));
System.out.println("The median of [10, -10, -10] is " +
medianOfThreeNumbers(10, -10, -10));
System.out.println("The median of [3, 3, 5] is " +
medianOfThreeNumbers(3, 3, 5));
}
}
/*
run:
The median of [1, 1, 1] is 1
The median of [10, 3, 7] is 7
The median of [10, -10, -10] is -10
The median of [3, 3, 5] is 3
*/