Найти в Дзене

5 задание ЕГЭ по информатике. Три способа решения

Способ №1 "Сложный" Число в двоичной системе счисления состоит только из нулей и единиц, поэтому сложить все цифры в такой записи равносильно подсчету количества единиц в этой записи. Остаток от деления числа на 2 - другими словами это показатель четности. Таким образом, если в двоичном представлении числа N количество единиц чётно - допишем справа 0 и количество единиц не изменится, а значит ещё допишем 0. Если же единиц нечётное количество, то сначала допишем 1 и количество единиц станет уже чётно, а значит допишем 0. Итак в конце получившегося числа может быть только 00 или 10. Заметим, что результатом работы алгоритма не может быть нечётное число! Результат работы алгоритма - число >77. Начнём с 78: Подходит, т.к. в N кол-во 1 нечётно (3) и дописалось 10, значит 10011 - искомое число в двоичной системе счисления. Ответ: 19 Способ №2 "Python" Напишем небольшую программу, которая будет имитировать работу данного алгоритма для всех чисел N из диапазона от 1 до 100. В переменную s с
Оглавление

Способ №1 "Сложный"

Число в двоичной системе счисления состоит только из нулей и единиц, поэтому сложить все цифры в такой записи равносильно подсчету количества единиц в этой записи.

Остаток от деления числа на 2 - другими словами это показатель четности.

Таким образом, если в двоичном представлении числа N количество единиц чётно - допишем справа 0 и количество единиц не изменится, а значит ещё допишем 0. Если же единиц нечётное количество, то сначала допишем 1 и количество единиц станет уже чётно, а значит допишем 0.

-2

Итак в конце получившегося числа может быть только 00 или 10.

Заметим, что результатом работы алгоритма не может быть нечётное число!

Результат работы алгоритма - число >77. Начнём с 78:

-3

-4

Подходит, т.к. в N кол-во 1 нечётно (3) и дописалось 10, значит 10011 - искомое число в двоичной системе счисления.

-5

Ответ: 19

Способ №2 "Python"

Напишем небольшую программу, которая будет имитировать работу данного алгоритма для всех чисел N из диапазона от 1 до 100.

-6

В переменную s сохраним двоичное представление N в виде строки

-7

Добавим к строке s дважды остаток от деления на два количества единиц

-8

В переменную R записываем получившийся результат в 10-й системе счисления

-9

Если R > 77, то выводим N и дальше искать не нужно, так как уже найдено наименьшее значение.

-10

Запускаем!

-11

Ответ на экране.

Способ №3 "Лёгкий"

Сразу оговорюсь, что способ может показаться лёгким, если понятна суть работы алгоритма (см. способ №1)

Запускаем Калькулятор Windows в режиме "Программист"

-12

Пишем 78 и переводим в двоичную систему счисления, для чего нажимаем BIN

-13

Число может быть результатом работы алгоритма (см. способ №1)

-14

Копируем часть числа без последних двух разрядов, сбрасываем, вставляем скопированное число, переводим в 10-ю систему счисления

-15

И видим ответ

-16

Какой способ вам понравился больше? Или может предложите свой?