Сколько единиц в двоичной записи числа ?
Решение Python:
# Способ 1
a = bin(2**100 + 2**48 + 2**32 + 2**13 + 2**7 + 2 + 1)[2:]
print(a.count(’1’))
# Способ 2
a = 2**100 + 2**48 + 2**32 + 2**13 + 2**7 + 2 + 1
# Перевод выражения в 2сс
s = ’’
while a > 0:
s = str(a % 2) + s
a //= 2
print(s.count(’1’))
Решение руками:
В двоичной системе счисления, любое число вида имеет вид
, где после единицы идёт ровно
нулей. Соответственно, сумма
не создаст переполнения ни в одном разряде, и будет иметь вид
с единицами ровно на 101, 49, 33, 14, 8, 2 и 1 месте.
Ответ: 7