1. Главная
  2. Библиотека
  3. Программирование
  4. На вход алгоритма подаётся натуральное число N. Алгорит...
Решение задачи на тему

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 2. К этой записи дописываются справа ещё два разряда по следующему правилу: - a. складываются все цифры двоичной

  • Программирование
  • #Основы алгоритмизации и программирования
  • #Структуры и алгоритмы обработки данных
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 2. К этой записи дописываются справа ещё два разряда по следующему правилу: - a. складываются все цифры двоичной

Условие:

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
- a. складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
- b. над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на 2.


Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число, большее, чем 137. В ответе это число запишите в десятичной системе.

Решение:

Чтобы решить задачу, давайте поэтапно разберем алгоритм и найдем минимальное число N, после...

  1. : Сначала мы преобразуем число N в двоичную систему.
  2. :
  • Сначала мы складываем все цифры двоичной записи и берем остаток от деления на 2. Этот остаток добавляется в конец двоичной записи.
  • Затем мы снова складываем все цифры новой записи и снова берем остаток от деления на 2, добавляя его в конец.

Таким образом, мы получаем двоичную запись числа R, которая на два разряда длиннее, чем двоичная запись числа N.

Давайте рассмотрим пример, чтобы понять, как работает алгоритм.

Пусть N = 5. В двоичной записи это 101.

  1. Сумма цифр: 1 + 0 + 1 = 2. Остаток от деления 2 на 2 = 0. Записываем: 1010.
  2. Сумма цифр: 1 + 0 + 1 + 0 = 2. Остаток от деления 2 на 2 = 0. Записываем: 10100.

Теперь переведем 10100 в десятичную систему:

  • 1 2 + 1 2 + 0 * 2 = 16 + 0 + 4 + 0 + 0 = 20.

Теперь нам нужно найти минимальное N, чтобы R 137. Для этого будем перебирать натуральные числа N и проверять, какое значение R они дают.

  1. Начнем с N = 1:
  • N = 1 (двоичная запись: 1)
  • Сумма: 1. Остаток 1. Запись: 11.
  • Сумма: 1 + 1 = 2. Остаток 0. Запись: 110.
  • 110 в десятичной = 6.
  1. N = 2:
  • N = 2 (двоичная запись: 10)
  • Сумма: 1 + 0 = 1. Остаток 1. Запись: 101.
  • Сумма: 1 + 0 + 1 = 2. Остаток 0. Запись: 1010.
  • 1010 в десятичной = 10.
  1. N = 3:
  • N = 3 (двоичная запись: 11)
  • Сумма: 1 + 1 = 2. Остаток 0. Запись: 110.
  • Сумма: 1 + 1 + 0 = 2. Остаток 0. Запись: 1100.
  • 1100 в десятичной = 12.
  1. N = 4:
  • N = 4 (двоичная запись: 100)
  • Сумма: 1 + 0 + 0 = 1. Остаток 1. Запись: 1001.
  • Сумма: 1 + 0 + 0 + 1 = 2. Остаток 0. Запись: 10010.
  • 10010 в десятичной = 18.
  1. N = 5:
  • N = 5 (двоичная запись: 101)
  • Сумма: 1 + 0 + 1 = 2. Остаток 0. Запись: 1010.
  • Сумма: 1 + 0 + 1 + 0 = 2. Остаток 0. Запись: 10100.
  • 10100 в десятичной = 20.
  1. Продолжаем в том же духе, пока не найдем R 137.

После перебора чисел, мы находим, что:

  • N = 128 (двоичная запись: 10000000)
  • Сумма: 1. Остаток 1. Запись: 100000001.
  • Сумма: 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 2. Остаток 0. Запись: 1000000010.
  • 1000000010 в десятичной = 256, что больше 137.

Таким образом, минимальное число N, после обработки которого получается число R больше 137, равно:

Выбери предмет