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

1 Answer

0 votes
import Foundation

/**
 Finds the smallest and largest digits in a number.

 - Parameter number: The input number.
 - Returns: A tuple containing:
            - min: Smallest digit
            - max: Largest digit
 */
func findMinMaxDigits(_ number: Int) -> (min: Int, max: Int) {

    // Handle negative numbers
    var num = abs(number)

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

    var minDigit = 9
    var maxDigit = 0

    while num > 0 {

        // Extract the last digit
        let digit = num % 10

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

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

        // Remove the last digit
        num /= 10
    }

    return (min: minDigit, max: maxDigit)
}

// Input data
let number: Int = 839516

// Find smallest and largest digits
let result = findMinMaxDigits(number)

// Display results
print("Number: \(number)")
print("Smallest digit: \(result.min)")
print("Largest digit: \(result.max)")


/*
run:

Number: 839516
Smallest digit: 1
Largest digit: 9

*/

 



answered 19 hours ago by avibootz
...