Ваш браузер устарел. Рекомендуем обновить его до последней версии.

Меню сайта


Счётчик посещений


 

счетчик посещений

 

Мысль дня

Часы

Календарь

Календари на любой год - Календарь.Юрец.Ру

Обратная связь

Поля, помеченные символом *, обязательны для заполнения.

6. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

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

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

Ответ: 31

    Решение:

Проанализируем задачу, на вход подаётся некое число N, затем, производится двоичная запись этого числа и по правилам строится новое число R. В нашем случаи R=125. Запишем его в двоичном коде:

12510= 26*1 + 25*1 + 24*1 + 23*1 + 22*1 + 21*0 + 20*1  = 11111012

R на два разряда больше числа N, уберём два последних разряда у двоичной записи числа 125. Получим 11111, представим в десятичной записи:

1413121110= 24 + 23 + 22 + 21 + 20 = 16 + 8 + 4 + 2 + 1 = 31

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

 

Двоичная запись Десятичная запись  Выполнение алгоритма программы
1111100 124 НЕ ПОДХОДИТ. Результат работы алгоритма должен быть больше 125
1111101 125 НЕ ПОДХОДИТ. Результат работы алгоритма должен быть больше 125
1111110 126

Проверяем:

изначально 5 единиц, складываем их и делим на 2, в остатке 1, приписываем единицу справа 111111. Затем опять складываем все единицы и делим на 2. Шесть разделить на два в остатке 0, приписываем его справа  - 1111110.

Вот мы и нашли наше число.

1111111 127  

 

 Ответ 31

 

     НАЗАД