Как разделить натуральное число на цифры в C# не используя массивы чистой математикой

Я получил задание: Дано натуральное число. Определить его максимальную и минимальную цифру. и я написал код:

    static void Main(string[] args)
    {
        Console.Write("Введите натуральное число: ");
        string x = Console.ReadLine();
        string [] j  = x.Split();
        int min = int.Parse(j[0]);
        int max = int.Parse(j[0]);
        for(int i = 0; i < j.Length; i++)
        {
            if(max < int.Parse(j[i]))
            {
                max = int.Parse(j[i]);
            }
            if (min > int.Parse(j[i]))
            {
                min = int.Parse(j[i]);
            }
        }
        Console.WriteLine($"максимальная цифра {max}, минимальная цифра {min}");
    }

но оказалось что нельзя использовать массивы. Препод сказал написать что то с делением с помощью математики. Типо 2038 деление без остатка на 1000 дает нам первое число 2 и так далее. Но я понятия не имею какова должна быть логика чтобы при числе любой длинны такая тема работала. Помогите подскажите алгоритм или типо того а то в голове нет идей


Ответы (1 шт):

Автор решения: Harry

Вот так...

Console.Write("Введите натуральное число: ");
int x = Convert.ToInt32(Console.ReadLine());
int min = 10;
int max = -1;
do 
{
    int d = x % 10;
    if (max < d) max = d;
    if (min > d) min = d;
    x /= 10;
} while(x != 0);
Console.WriteLine($"максимальная цифра {max}, минимальная цифра {min}");
→ Ссылка