
Сколько единиц содержится в двоичной записи значения выражения:
42016 + 22015 − 7?
Решение. Преобразуем выражение:
Число 24032 в двоичной записи записывается как единица и 4032 нуля. Добавив число 22015, получаем 100...00100...000 (единица, 2016 нулей, единица, 2015 нулей, всего 4033 разрядных цифр). Если вычесть из этого числа 23 = 10002, то число примет вид 100...001...1000. В полученном числе единица, 2017 нулей, 2012 единиц и три нуля. После прибавления единицы последний ноль станет единицей, то есть в числе будет единица, 2017 нулей, 2012 единиц, два нуля и единица, всего 2014 единиц.
Ответ: 2014.
Приведём другое решение на языке Python.
x = 4**2016 + 2**2015 - 7
s = ''
while x != 0:
s += str(x % 2)
x //= 2
s = s[::-1]
print(s.count("1"))
PDF-версии: