Как разделить натуральное число на цифры в 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}");