How to find the smallest and largest digits in a number in C#

1 Answer

0 votes
using System;

class Program
{
    /// <summary>
    /// Finds the smallest and largest digits in a number.
    /// </summary>
    /// <param name="number">Input number.</param>
    /// <param name="minDigit">Returns the smallest digit.</param>
    /// <param name="maxDigit">Returns the largest digit.</param>
    static void FindMinMaxDigits(int number, out int minDigit, out int maxDigit)
    {
        // Handle negative numbers
        number = Math.Abs(number);

        // Special case for 0
        if (number == 0) {
            minDigit = 0;
            maxDigit = 0;
            return;
        }

        minDigit = 9;
        maxDigit = 0;

        while (number > 0)
        {
            // Extract the last digit
            int digit = number % 10;

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

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

            // Remove the last digit
            number /= 10;
        }
    }

    static void Main()
    {
        int number = 839516;

        FindMinMaxDigits(number, out int minDigit, out int maxDigit);

        Console.WriteLine($"Number: {number}");
        Console.WriteLine($"Smallest digit: {minDigit}");
        Console.WriteLine($"Largest digit: {maxDigit}");
    }
}


/*
run:

Number: 839516
Smallest digit: 1
Largest digit: 9

*/

 



answered 1 day ago by avibootz
...