ЗАДАНИЕ НА ПИТОН СРОЧНО ПОЖАЛУЙСТА!!!!!!!!!!!!!!!ДАЮ 100 БАЛЛОВ!!!!!
Разбей на пары
Алгоритм получает на вход натуральное число N⩾10
и строит по нему новое число R
следующим образом:
1. Все пары соседних цифр в десятичной записи N
справа налево рассматриваются как двузначные числа (возможно, с ведущим нулём).
2. Из списка полученных на предыдущем шаге двузначных чисел выделяются наибольшее и наименьшее.
3. Результатом работы алгоритма становится разность найденных на предыдущем шаге двух чисел.
Реализуйте данный алгоритм для входного числа и выведите полученную разность. Не используйте операции над строковыми данными— рассматривайте входные данные как число, а не строку. Списки (векторы) и другие контейнеры также использовать нельзя.
Формат входных данных
На вход подается одно число 10⩽N⩽1018
.
В языке С++ используйте тип данных long long.
Формат выходных данных
Выведите одно число — результат работы алгоритма.
Замечание
В первом примере у нас есть только одна пара цифр.
Во втором примере пар цифр две: 00
и 01. Они соответствуют числам 0 и 1
.
В третьем примере число разбивается на пары 89
, 67, 45, 23, 01
.
Ввод
Вывод
99
0
100
1
123456789
88
Ограничения
Время выполнения: 1 секунда
Процессорное время: 1 секунда
Память: 256 MB
Answers & Comments
Для начала, нам нужно получить все пары соседних цифр в десятичной записи числа. Можно это сделать с помощью цикла while и операции % (остаток от деления), которая позволяет нам извлекать последнюю цифру числа:
perl
Copy code
n = int(input()) # ввод числа
pairs = [] # список для хранения пар
while n >= 10:
pair = n % 100 # получаем пару
pairs.append(pair) # добавляем пару в список
n //= 10 # удаляем последнюю цифру числа
pairs.reverse() # разворачиваем список, чтобы пары были слева направо
Далее, нам нужно найти наибольшее и наименьшее число из списка пар. Можно это сделать с помощью функций min() и max():
lua
Copy code
max_pair = max(pairs) # наибольшее число из списка пар
min_pair = min(pairs) # наименьшее число из списка пар
Наконец, находим разность между наибольшим и наименьшим числами:
bash
Copy code
result = max_pair - min_pair # разность наибольшего и наименьшего чисел
print(result) # выводим результат
Вот как может выглядеть полный код программы:
python
Copy code
n = int(input()) # ввод числа
pairs = [] # список для хранения пар
while n >= 10:
pair = n % 100 # получаем пару
pairs.append(pair) # добавляем пару в список
n //= 10 # удаляем последнюю цифру числа
pairs.reverse() # разворачиваем список, чтобы пары были слева направо
max_pair = max(pairs) # наибольшее число из списка пар
min_pair = min(pairs) # наименьшее число из списка пар
result = max_pair - min_pair # разность наибольшего и наименьшего чисел
print(result) # выводим результат
Надеюсь, это поможет вам решить задание!