Задача к ЕГЭ по информатике на тему «арифметические выражения» №8

Сколько единиц содержится в двоичной записи значения выражения:

322 − 162 + 82 − 42 + 22 − 12 + 1023?

Решение Python:

# Способ 1
a = 32**2 - 16**2 + 8**2 - 4**2 + 2**2 - 1**2 + 1023
c = 0
while a > 0:
    if a % 2 == 1:
        c += 1
    a //= 2
print(c)
# Способ 2
a = bin(32**2 - 16**2 + 8**2 - 4**2 + 2**2 - 1**2 + 1023)[2:]
print(a.count(’1’))

Решение руками:

322 − 162 + 82 − 42 + 22 − 12 + 1023 = 210 − 28 + 26 − 24 +22 − 1+ 210 − 1 = 211 − 28 + 26 − 24 + 22 − 2

Вычтем столбиком:

    100001000100
    -  100010010
    ------------
     11100110010

Итого, 6 единиц.

Ответ: 6
Оцените статью
Я решу все!