5 НОМЕР - Решение задач (1/3)
Условие задачи
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Шаг: Строится двоичная запись числа N.
2. Шаг: Далее эта запись обрабатывается по следующему правилу:
а) если количество разрядов в числе чётное, тогда в центр записи числа дописывается 111.
б) если количество разрядов в числе нечётное, тогда к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
Пример: для числа 5₁₀ = 101₂ результат — 1111₂ = 15₁₀; для числа 8₁₀ = 1000₂ результат — 1011100₂ = 92₁₀.
Укажите минимальное число N, после обработки которого получается число R, большее 4000.
Алгоритм решения
1. Перебор чисел: Создать цикл for n in range(1, 10000): (диапазон обычно небольшой, можно увеличить при необходимости)..
2. Перевод в систему счисления (СС): использовать функции bin(), oct(), hex() или алгоритм деления (например, n % 3 и n // 3 для троичной). В нашем случае необходимо использовать bin() тк перевод в двоичную запись.
3. Обработка: Проверяем длину двоичной записи: если чётная — вставляем "111" в центр; если нечётная — дописываем "1" справа и заменяем первые два символа на "11".
Количество разрядов можно проверить при помощи функции len(), соответственно проверка будет выглядеть следующим образом:
1 2
Чтобы вставить ‘111’ в центр, необходимо с помощью срезов разделить число nn = n[:mid] + '111' + n[mid:], где mid это mid = len(n) // 2
4. Проверка: Переводим результат обратно в десятичную систему через int(s, 2) и проверяем условие R > 4000.Чтобы перевести число из двоичной в десятичную запись, используем функцию int()
5. Вывод: Выводим первое подходящее N и останавливаемся (break).
Решение на Python
1 2 3 4 5 6 7 8 9 10 11 12
Важное замечание
В задачах на нахождение минимального N мы перебираем именно входные числа N по порядку и останавливаемся на первом, которое удовлетворяет условию. break прерывает цикл после нахождения ответа.
Ответ: 512
Решите задачи, чтобы усвоить материал
Решить в Личном КабинетеНа вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится троичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи справа дописываются две последние троичные цифры;
б) если число N на 3 не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма умножается на 3, переводится в троичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Укажите минимальное нечётное число R, большее 555, которое может быть получено с помощью описанного алгоритма.
В ответе запишите это число в десятичной системе счисления.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 10;
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, не превышающее 50. В ответе запишите это число в десятичной системе счисления
