Программирование 10 класс
Значение арифметического выражения 16560+16120-х, где х — целое положительное число больше 400, записали в 16-ричной системе счисления.Определите наименьшее значение х при котором в 16-ричной записи результата выражения содержится ровно 442 нуля В ответе запишите число в десятичной системе счисления.ПРАВИЛЬНО ЛИ Я НАПИСАЛА ПРОГРАММУ???

В 16-ричной системе число 16⁵⁶⁰ + 16¹²⁰ имеет вид (в фигурных скобках кол-во повторов предшествующей цифры):
10{439}10{120}
Если мы отнимем от него число 1, получим:
10{440}F{120}
Число с 440 нулями.
Чтобы получить 442 нуля, надо отнять число, оканчивающееся в 16-ричной системе на 2 нуля. Минимальное такое число 0x100 и в результате его отнимания получим искомые 442 нуля:
10{440}F{118}0{2}
Но 0x100 = 256, а по условию x > 400. Так что берём следующее число с двумя нулями x = 0x200 = 512 и получаем:
10{440}F{117}E0{2}
Ответ: 512
БЕЗ программирования.
Может и прав, что поф...но вот гляжу на эти отступы и думаю, а верно ли пошли в питоне, так как все же не смотрится этот код понятно.
Ну а по поводу алгоритма, вроде же есть 16560+16120-х выражение, потом берете и начинаете как у вас с 400 и далее искать...но это же ленивый способ, допустим вы найдете, что 16560+16120-400 = 32280 или 7E18 чтобы был ноль, надо к 8 добавить 8 и получим 7E20 чтобы получить еще один ноль, то достаточно (16560+16120-400+8) умножить на 16 и станет 7E200 и так далее нужное кол. раз...ну вот зачем в цикле перебирать другие 15, если ноль появляется только при умножении потом на 16?
Вот и выходит, что надо сделать так: (16560+16120-400+8) * 16 в степени 441
Сколько будет не знаю, но вы уж проверьте...я не питонист