Задача 4: Задача из ЕГЭ
Тимофей готовится к ЕГЭ. Для отработки навыка скорости и точности поиска ответов на задания по теме «Системы счисления» ему часто приходится решать примеры типа «сколько значащих нулей (или единиц) содержит двоичная запись значения выражения 2a + 2b − 2c?». Значащими называются все цифры, кроме нулей в начале числа (которые обычно и не записываются). Например, десятичное число 20 в двоичной системе счисления записывается как 10100, и в этой записи две значащие цифры «1» и три значащие цифры «0».
Помогите Тимофею по известным a, b и c узнать ответ на задачу.
Входные данные
Программа получает на вход четыре целых неотрицательных числа: a, b, c и d, записанные в отдельных строках. Числа a, b и c соответствуют показателям степеней двоек в задании (0 ≤a, b, c, ≤109). При этом гарантируется, что 2a + 2b − 2c > 0 и a ≠ b.
Число d равно либо 0, либо 1 — цифра, количество которых в значении выражения нужно узнать.
Выходные данные
Программа должна вывести одно неотрицательное целое число — ответ на задачу.
Система оценивания
Решение, правильно работающее только для случаев, когда входные данные не превосходят 12, будет оцениваться в 40 баллов.
Пример
Ввод
4
3
2
1
Вывод
2
Answers & Comments
Ответ:
a = int(input())
b = int(input())
c = int(input())
d = int(input())
it = 0
n = (2 ** a) + (2 ** b) - (2 ** c)
aye = format(n, 'b')
for i in aye:
if i == str(d):
it += 1
print(it)
Объяснение: