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
*/