package main
import (
"fmt"
)
/*
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)
*/
func medianOfThreeNumbers(a, b, c int) int {
// Determine the minimum of the three numbers
min := a
if b < min {
min = b
}
if c < min {
min = c
}
// Determine the maximum of the three numbers
max := a
if b > max {
max = b
}
if c > max {
max = c
}
// The median is the remaining value
return a + b + c - min - max
}
func main() {
// Test cases
fmt.Println("The median of [1, 1, 1] is", medianOfThreeNumbers(1, 1, 1))
fmt.Println("The median of [10, 3, 7] is", medianOfThreeNumbers(10, 3, 7))
fmt.Println("The median of [10, -10, -10] is", medianOfThreeNumbers(10, -10, -10))
fmt.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
*/