Помогите решить задачу пж)
Годовой баланс
В конторе «Рога и Копыта» подходит время подведения годового баланса. В бухгалтерию поступили сведения о том, что, согласно документам, суммарный расход составил а рублей, a суммарный приход – b рублей. Поскольку с реальным положением дел эти цифры все равно не имеют ничего общего, бухгалтер решил реализовать следующую свою идею. Как известно, при наборе чисел на компьютере люди часто вводят цифры в неправильном порядке. Поэтому бухгалтер хочет найти такой способ переставить цифры в числах a и b, чтобы в результате разность a-b (и, соответственно, количество денег, которые он положит к себе в карман), была максимальна, а в случае можно будет сослаться на ошибку секретаря. При этом нельзя забывать о знаке чисел и о том, что ноль не может быть первой цифрой числа, отличного от ноля. Напишите программу, которая поможет бухгалтеру.
Входные данные:
Входной файл INPUT.TXT содержит два целых числа a и b (-109 < a,b < 109).
Выходные данные:
В выходной файл OUTPUT.TXT выведите одно целое число – наибольшую разность чисел, первое из которых может быть получено перестановкой цифр a, а второе – перестановкой цифр b.
Вот мой код:
from math import*
a = int(input())
b = int(input())
s = 0
d = 0
if a > 0:
z = floor(a / 10)
x = a - (z * 10)
#print(z, x, "*")
if x > z:
s = x
d = z
q = (s * 10) + d
if x < z:
q = (z * 10) + x
if a < 0:
z = ceil(a / 10)
x = a - (z * 10)
print(z, x, "*")
if x > z:
s = x
d = z
q = (s * 10) + d
if x < z:
q = (z * 10) + x
n = 0
m = 0
if b > 0:
r = floor(b / 10)
t = b - (r * 10)
#print(r, t, "**")
if r > t:
n = r
m = t
w = (n * 10) + m
if t > r:
w = (r * 10) + t
if b < 0:
r = ceil(b / 10)
t = b - (r * 10)
print(r, t, "**")
if t < r:
n = r
m = t
w = (m * 10) + n
if r < t:
w = (r * 10) + t
#if z == 0:
# q = a
#if r == 0:
# w = b
#print(q, w)
print(q - w)
Ответы (1 шт):
Вот вырожденный случай, когда оба числа > 0.
Сюда добавьте обработку со случаем нуля:
a = list('235')
a.sort(reverse=True) #a -> max
b = list('705')
b.sort() #b -> min
if (b[0] == '0'):
b[0], b[1] = b[1], b[0]
a = ''.join(a)
b = ''.join(b)
print(a)
print(b)
print(int(a) - int(b))
output: 532 507 25