• ПОЖАЛУЙСТА ПОМОГИТЕ!!! Я УЖЕ ЧАС СИЖУ И НЕ МОГУ ПОНЯТЬ, КАК РЕШАТЬ ЭТО ЗАДАНИЕ (с подробным и понятным объяснением)

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

Ответы 2

  • Правило а) в конец числа (справа) дописывается 1, если число единиц в двоичной записи числа чётно, и 0, если число единиц в двоичной записи числа нечётно. Правило а) приведет к тому, что число единиц станет нечетным в любом случае.

    Правило б) к этой записи справа дописывается остаток от деления количества единиц на 2. После правила а) число единиц нечетное, поэтому дописываться всегда будет единица. Это, в свою очередь, означает, что все число будет нечетным и в десятичной системе, а общее число единиц в двоичной записи будет четным.

    Число R по условию превышает 31₁₀=11111₂ и должно быть нечетным.

    Будем последовательно проверять все нечетные числа, начиная от 100001₂.

    100001 может быть результатом работы алгоритма, т.е. число единиц в нем четное и оно завершается единицей.

    В самом деле, если N₂=1000, то по правилу а) получаем 10000, а по правилу б) получаем 100001.

    Итак, N₂=100001₂=2⁵+2⁰=32+1=33₁₀

    Ответ: 33

    • Автор:

      graves
    • 6 лет назад
    • 0
  • 1) первое число, превышающее число 31, это число 32

    2) 32 (10сс) =10 0000 (2сс) =(1000) 00 - не подходит, так как в 1000 число единиц нечётно и далее должна стоять 1, а у нас 0

    3) 10 0001 - не подходит по той же причине

    4) 10 0010 (2сс)= (1000)10=32+2=34 (10сс) ответ 34

  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years