Максимальное N (2 часть). №5 ЕГЭ
2 часть подборки заданий, в которых нужно определить максимальное N по заданному алгоритму и результату его работы.
№FEA61B
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 это число 11012 = 1310.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее 20. В ответе запишите это число в десятичной системе счисления.
решение
Напишем функцию number() которая будет преобразовывать число по заданному алгоритму.
Для преобразования в двоичную систему счисления используем функцию bin().
Находим сумму цифр.
Дальше преобразуем число в зависимости от чётности суммы его цифр.
Функция вернёт число, переведённое после преобразований в десятичную систему.
Возьмём явно избыточный интервал натуральных чисел от 20 до 1 и переберём числа в порядке убывания: N in range(20, 0, -1). Передадим каждое число как аргумент функции number() и сравним результат преобразований с числом 20. Как только результат окажется меньше 20, выведем число и прервём цикл.
программа
результат
12
№2A4EB2
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 это число 11012 = 1310.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее 40. В ответе запишите это число в десятичной системе счисления.
решение
Изменения в программе №FEA61B:
for N in range(40, 0, -1):
if number(N) < 40:
результат
27
№FD3C06
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё несколько разрядов по следующему правилу:
а) если N чётное, то к нему справа приписываются два нуля, а слева единица;
б) если N нечётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи.
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, исходное число 410 = 1002 преобразуется в число 1100002 = 4810, а исходное число 1310 = 11012 преобразуется в число 1101112 = 5510.
Укажите такое наибольшее число N, для которого R не превышает 210. В ответе запишите это число в десятичной системе счисления.
решение
Изменения в программе №FEA61B:
for N in range(210, 0, -1):
if number(N) < 210:
результат
49
№DD38CF
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 12 = 11002 результатом является число 11001002 = 100, а для исходного числа 4 = 1002 результатом является число 100112 = 19.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее чем 76.
решение
Изменения в программе №FEA61B:
for N in range(76, 0, -1):
if number(N) < 76:
результат
16
№D908DA
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 12 = 11002 результатом является число 11001002 = 100, а для исходного числа 4 = 1002 результатом является число 100112 = 19.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее чем 100.
решение
По сравнению с предыдущей задачей меняется только интервал и число, с которым сравниваем результат:
for N in range(100, 0, -1):
if number(N) < 100:
результат
22
Примеры из Банка заданий ЕГЭ