Задание 5
Эта задача связана с анализом и построением алгоритмов для исполнителей. Задание 5 несложное, его можно решить вручную, но, конечно же, лучше использовать программирование в Python. Чтобы справиться с этим номером, тебе нужно знать Срезы и Функции bin(), oct(), hex().
Срез
Эта операция в Python позволяет получить часть списка или другого изменяемого последовательного типа данных. Срез создаёт новый объект, содержащий элементы исходного объекта с заданными индексами.
Функции
- bin(num) — преобразует целое число в строку двоичного формата. Форматированная строка имеет префикс «0b».

- oct(num) — преобразует целое число в строку восьмеричного формата с префиксом «0o».

- hex(num) — преобразует целое число в строку шестнадцатеричного формата с префиксом «0x».

Тренируемся
От теории переходим к практике. Давай вместе решим несколько типовых задач, которые могут попасться тебе на реальном экзамене.
Задача 1

Начнем решать задание в программе:
- строим двоичную запись числа N и обрезаем два первых символа
![]()
- далее дописываем бит четности к «s»: для этого нужно проверить, четное количество единиц или нет

Кстати, ты можешь сократить решение и написать то же самое, но не в 8-ми строчках, а в 2-х (смысл не поменяется). Запись будет выглядеть так:

- теперь возвращаем десятичную запись нового числа

- важно: проверяем правильность работы алгоритма на основе условия задачи

- применяем алгоритм к разным числам, как только получим число больше 108, программа его отобразит и остановится

Ответ: 114
Задача 2

Предлагаем такой вариант решения в Python:
- разбиваем число N на цифры с помощью генератора и сортируем список по возрастанию

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

- строим алгоритм для вычисления разности между максимальным и минимальным числом

Обрати внимание: мы не будем рассматривать вариант, когда в числе есть 0, потому что такого случая в нашем варианте задачи не будет (об этом говорит полученное из условия значение разности – 20).
- узнаем количество чисел, которые дадут результат “20” на отрезке [300; 400]

- проверяем, есть ли в числе 0 (если есть, то его бессмысленно пропускать через алгоритм), и задаем условие. Рекомендуем посмотреть, какие именно число считает программа, чтобы убедится, что все верно (посмотри на команду в строке 15).

Ответ: 12