Как вывести ответ только в случае, когда a = 2, и b = 4 при максимальном i?
for i in range(0, 1000000):
x = i
a = 0
b = 0
while x > 0:
if x % 2 == 0:
a += 1
else:
b += x % 10
x = x // 10
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
Для максимального i надо начинать не с 0, а сразу с конца. Как только а и б достигнут нужных значений, то задача решена.
Автор решения: Zhihar
→ Ссылка
т.е. задача "найти натуральное число такое у которого 2 цифры чётные и сумма нечетных цифр равно 4"
очевидно что нечетные цифры - это или 1, 1, 1, 1 или 1, 3, таким образом максимально возможное число - это
881111
а касательно самого вопроса - идите с конца:
for i in range(1000000, 0, -1):
x = i
a = 0
b = 0
while x > 0:
if x % 2 == 0:
a += 1
else:
b += x % 10
x = x // 10
if a == 2 and b == 4:
print(i)
break
ну или если чуть покороче :)
for i in range(1000000, 0, -1):
a, b, x = 0, 0, i
while x > 0:
a, b, x = (a + 1, b, x // 10) if x % 2 == 0 else (a, b + x % 10, x // 10)
if a == 2 and b == 4:
print(i)
break