Вопрос задан 27.09.2023 в 21:12. Предмет Информатика. Спрашивает Пивоварова Александра.

Задание 5 На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R

следующим образом. 1. Строится двоичная запись числа N. 2. К этой записи дописываются справа ещё несколько разрядов по следующему правилу: а) Если Nчётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи; б) Если N нечётное, то к нему справа приписываются два нуля, а слева единица. Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Например, запись числа 1101 будет преобразована в 11110100. Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 215. В ответе это число запишите в десятичной системе счисления.​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Масленникова Арина.

Ответ: Тут в задание опечатка скорее всего

Если делать по примеру из задания, будет такой код:

for i in range(20):

   n = i

   n = bin(n)[2:]

   sum = 0

   if int(n) % 2 == 0:

       sum = str(n).count('1')

       sum = bin(sum)[2:]

       r = n + sum

   else:

       r = '11' + n + '00'

   r = int(r, 2)

   if r > 215:

       print(i)

Если делать по условию задание, будет такой код:

for i in range(30):

   n = i

   n = bin(n)[2:]

   sum = 0

   if int(n) % 2 == 0:

       sum = str(n).count('1')

       sum = bin(sum)[2:]

       r = n + sum

   else:

       r = '1' + n + '00'

   r = int(r, 2)

   if r > 215:

       print(i)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Давайте разберемся с этим алгоритмом. Пошагово:

  1. Переводим число N в двоичную запись.
  2. Если N четное, приписываем к нему справа сумму цифр его двоичной записи. Если N нечетное, приписываем справа два нуля, а слева единицу.

Давайте рассмотрим пример:

Пусть N = 13 (1101 в двоичной записи).

Так как N нечетное, мы приписываем два нуля справа и единицу слева. Получаем: 0110101.

Теперь нам нужно найти такое наименьшее N, для которого результат работы алгоритма будет больше 215.

Давайте будем перебирать натуральные числа, начиная с 1, и применять к ним описанный алгоритм, пока не найдем подходящий результат.

Для удобства, мы можем начать с числа 1 и последовательно увеличивать его.

  1. N = 1, двоичная запись: 1, добавляем два нуля справа, получаем: 100.
  2. N = 2, двоичная запись: 10, сумма цифр: 1+0 = 1, добавляем 1 справа, получаем: 101.
  3. N = 3, двоичная запись: 11, сумма цифр: 1+1 = 2, добавляем 10 справа, получаем: 110.
  4. N = 4, двоичная запись: 100, сумма цифр: 1+0+0 = 1, добавляем 1 справа, получаем: 1001.
  5. N = 5, двоичная запись: 101, сумма цифр: 1+0+1 = 2, добавляем 10 справа, получаем: 1010.
  6. N = 6, двоичная запись: 110, сумма цифр: 1+1+0 = 2, добавляем 10 справа, получаем: 1100.
  7. N = 7, двоичная запись: 111, сумма цифр: 1+1+1 = 3, добавляем 11 справа, получаем: 11100.

Таким образом, минимальное N, для которого результат работы алгоритма больше 215, равно 7. Переводим 7 в десятичную систему счисления: ответ - 7.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос