Присоединиться

11 класс·средний уровень

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. В ответе это число запишите в десятичной системе счисления.

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Приведём решение на языке 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 шага

  1. if (v:=int(f(n), 2)) > 600])print(spi[0][1])…

  2. Приведём решение Сергея Донец на…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Анализ и построение алгоритмов для исполнителей»