How to find the median among three given numbers in Scala

1 Answer

0 votes
object 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)
  */
  def medianOfThreeNumbers(a: Int, b: Int, c: Int): Int = {
    // Determine the minimum of the three numbers
    val minVal =
      if (a <= b && a <= c) a
      else if (b <= a && b <= c) b
      else c

    // Determine the maximum of the three numbers
    val maxVal =
      if (a >= b && a >= c) a
      else if (b >= a && b >= c) b
      else c

    // The median is the remaining value
    a + b + c - minVal - maxVal
  }

  def main(args: Array[String]): Unit = {
    // Test cases
    println(s"The median of [1, 1, 1] is ${medianOfThreeNumbers(1, 1, 1)}")
    println(s"The median of [10, 3, 7] is ${medianOfThreeNumbers(10, 3, 7)}")
    println(s"The median of [10, -10, -10] is ${medianOfThreeNumbers(10, -10, -10)}")
    println(s"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

*/

 



answered Mar 26 by avibootz
...