N. Алгоритм строит по нему новое число R следующим образом.1. Строится
Условие
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.1. Строится двоичная запись числа N.2. К этой записи дописываются ещё несколько разрядов по следующему правилу:3. а) если N чётное, то к нему справа приписывается один ноль, а слева единица и ноль;4. б) если N нечётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R.Например, исходное число 4₁₀ = 100₂ преобразуется в число 101000₂ = 40₁₀, а исходное число 13₁₀ = 1101₂ преобразуется в число 110111₂ = 55₁₀.Укажите такое число N, для которого число R является наименьшим среди чисел, превышающих 600. В ответе это число запишите в десятичной системе счисления.
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Приведём решение на языке Python.otv = c = 10**10for n in range(20,2000): s = bin(n)[2:] if n%2==0: s = '10' + s + '0' else: s = s + bin(s.count('1'))[2:] r = int(s,2) if r > 600 and c > r: otv = n c = rprint(otv) Приведём другое решение на языке Python.f = lambda n: b + bin(sum(map(int, list(b))))[2:] if (b:=bin(n)[2:]) and n%2 else '10' + b + '0'spi = sorted([(v, n) for n in range(1,
Осталось ещё 2 шага
if (v:=int(f(n), 2)) > 600])print(spi[0][1])…
Приведём решение Сергея Донец на…
Бесплатно · займёт минуту