How to find the smallest and largest digits in a number in Scala

1 Answer

0 votes
object Main {

  /**
   * Finds the smallest and largest digits in a number.
   *
   * @param number Input number
   * @return A tuple containing:
   *         (smallest digit, largest digit)
   */
  def findMinMaxDigits(number: Int): (Int, Int) = {

    // Handle negative numbers
    var num: Int = math.abs(number)

    // Special case for 0
    if (num == 0) {
      return (0, 0)
    }

    var minDigit: Int = 9
    var maxDigit: Int = 0

    while (num > 0) {
      // Extract the last digit
      val digit: Int = num % 10

      // Update smallest digit
      if (digit < minDigit) {
        minDigit = digit
      }

      // Update largest digit
      if (digit > maxDigit) {
        maxDigit = digit
      }

      // Remove the last digit
      num /= 10
    }

    (minDigit, maxDigit)
  }

  def main(args: Array[String]): Unit = {

    val number: Int = 839516

    val (minDigit, maxDigit) = findMinMaxDigits(number)

    println(s"Number: $number")
    println(s"Smallest digit: $minDigit")
    println(s"Largest digit: $maxDigit")
  }
}


/*
run:

Number: 839516
Smallest digit: 1
Largest digit: 9

*/

 



answered 19 hours ago by avibootz
...