Member 14987645 Ответов: 1

Как мне написать код для этого на Python?


Рахул сталкивается с уникальной проблемой, которую он не знает, как решить. Задача требует, чтобы он построил наименьшее возможное число, применив инверсию к любой цифре числа любое число раз.
Инверсия цифры определяется как замена этой цифры на 9 минус эта цифра. Это означает, что инверсия 9 будет 9 - 9 = 0, а инверсия 1 будет 9 - 1 = 8 и так далее.

Конечный результат не должен иметь никаких ведущих нулей.

входной формат:
Единственная строка входных данных содержит целое число N

выходной формат:
Выведите только одно целое число в строке, как описано выше.

Ограничения:
1 <= N <= 10^18

Примеры:
Ввод:
87
Выход:
12

Объяснение:

9-8 = 1

и 9 -7 = 2

если мы посмотрим внимательно, 12-это наименьшее возможное число, которое мы можем получить.

Что я уже пробовал:

x=input()
1 <= int(x) <= 10^18
for i in range(1,len(x)):
    x[i]=int(x[i])
    if x[i]>5:
        x[i]=9-x[i]
if x[0]==9:
    x[0]==9
elif x[0]>5:
    x[0]=9-x[i]
else:
    x[0]=x[0]
print(x)

Gerry Schmitz

Вам нужно показать свой "вход", и то, что вы получили в качестве "выхода", и то, что вы "ожидали". Мы не делаем "проверку стола" просто так.

1 Ответов

Рейтинг:
2

Richard MacCutchan

Вот основной код для инвертирования числа:

answer = ''
x=input()
for i in range(len(x)):
    digit = 9 - int(x[i])
    answer = answer + str(digit)
print(answer)

Возможно, вам придется изменить его, чтобы учесть любые другие правила, которым вы должны следовать. Кстати линия
1 <= int(x) <= 10^18

на самом деле ничего не делает. Это хорошая идея, чтобы проверить свой код, как вы пишете его, и попытаться исправить любые ошибки сразу же, как вы их видите.