Сколько единиц содержится в двоичной записи значения выражения:
42018 + 22017 − 5?
Преобразуем выражение:
Число 24036 в двоичной записи записывается как единица и 4036 нулей. Добавив число 22017, получаем 100...00100...000 (единица, 2018 нулей, единица, 2017 нулей, всего 4037 разрядных цифр). Если вычесть из этого числа 22 = 1002, то число примет вид 100...001...100. В полученном числе единица, 2019 нулей, 2015 единиц и два нуля. Если вычесть из этого числа 20 = 12, то число примет вид 100...001...1011. В полученном числе единица, 2019 нулей, 2014 единиц, ноль и две единицы. Значит, всего в числе 2017 единиц.
Ответ: 2017.
Приведём другое решение на языке Python.
x = 4**2018 + 2**2017 - 5
s = ''
while x != 0:
s += str(x % 2)
x //= 2
s = s[::-1]
print(s.count("1"))
Приведём решение Сергея Донец на языке PascalABC.NET.
uses School;
begin
(4bi ** 2018 + 2bi ** 2017 - 5)
.Digits(2)
.countof(1)
.print; // 2017
end.

