Статья Автор: Деникина Н.В., Деникин А.В.

Вопрос 5. Чтение алгоритма

Число проходит через автомат

На входе — число N. Правила меняют его запись. На выходе — число R. Твоя задача: точно выполнить правила, а затем выбрать нужное N или R.

Здесь шесть коротких тетрадей. После каждой — задачи с полным условием. Программу пишешь не вместо рассуждения, а после него.


Увидеть разряды

В двоичной записи справа налево стоят разряды со значениями в десятичной системе счисления 1, 2, 4, 8, 16… Складывай значения тех разрядов, где стоит 1.

Запись 16 8 4 2 1
10110 1 0 1 1 0

10110₂ = 16 + 4 + 2 = 22. Запись изменилась, само число — нет.


То же на Python

bin(n) даёт двоичную строку с началом 0b; срез [2:] убирает эти два символа. int(s, 2) переводит двоичную строку в число в десятичной системе счисления.



Вывод программы
10110
22
 

Проверь себя


Переведи запись 11001₂ в десятичную систему.


Запиши число 18 в двоичной системе без префикса 0b.


Итог

Если спрашивают N, записывай вход. Если спрашивают R, записывай результат преобразования. «Больше» — строго >; «не меньше» — ≥; «не превышает» — ≤.

В Python % даёт остаток, // — целую часть частного. Натуральные N начинаются с 1; для неотрицательных проверь также 0.


Не потеряй балл

  • Не перепутай число и строку: 10 + 1 и "10" + "1" : сложить числа и сложить строки - это разные действия!
  • Ответ в десятичной системе! Десятичная - это не двоичная запись.
Печать