Похоже, задача звучит как: найти разницу между наибольшей и наименьшей цифрами в числе. Если это не так — скажите точную формулировку. Ниже подробное решение для этого варианта.
Пошаговое решение (для любого целого числа n)
- Возьмём по модулю: используем абсолютное значение |n|, чтобы рассмотреть цифры числа независимо от знака.
- Если число равно 0, ответ — 0 (диапазон одной цифры — ноль).
- Найдём максимум и минимум цифр:
- Способ 1 (поразрядно): пройтись по всем цифрам, сравнивая с текущими максимумом и минимумом.
- Способ 2 (через строку): взять цифры как символы, преобразовать в цифры и найти max и min.
- Разница: max_digit − min_digit.
Алгоритм на псевдокоде
- n := abs(n)
- если n == 0: вернуть 0
- min_d := 9, max_d := 0
- пока n > 0: d := n mod 10 if d < min_d: min_d := d if d > max_d: max_d := d n := floor(n / 10)
- вернуть max_d − min_d
Примеры
- Пример 1: n = 5731 цифры: 5, 7, 3, 1 → max = 7, min = 1 → разница = 6
- Пример 2: n = 4008 цифры: 4, 0, 0, 8 → max = 8, min = 0 → разница = 8
- Пример 3: n = -219 цифры: 2, 1, 9 → max = 9, min = 1 → разница = 8
- Пример 4: n = 0 цифра: 0 → max = 0, min = 0 → разница = 0
Альтернатива (для школьников и быстро)
- Разность между наибольшей и наименьшей цифрами числа можно посчитать быстро, если число двухзначное: пусть цифры — a (десятки) и b (единицы), тогда разница = |a − b|.
- Временная сложность: O(k), где k — число цифр в числе.
Пожалуйста, пришлите само число (или конкретную формулировку задачи), и я подставлю его в решение и выведу ответ с коротким пояснением.