Найти в Дзене
Python для школьников

Решаем 5 задачу из ЕГЭ по информатике, никакого ручного перебора больше не потребуется

Привет! Задача на анализ и построение алгоритмов и исполнителей существует довольно давно, и, вообщем-то, решается на бумаге, или с помощью программы Калькулятор. Но, подумать только: сколько ошибок можно при этом допустить! Не заметил нолик, пропустил единичку - и все! Баллы потеряны. Сегодня, на примере нескольких сложных задачек с сайта К. Полякова, я покажу, как можно решать 5 задание КЕГЭ с помощью python. Если у тебя возникнут вопросы, или ты захочешь, чтобы я разобрала другую задачу - пиши комментарий. Я обязательно отвечу и учту все пожелания. Задача №1 Условие задачи Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом: 1) Число N переводим в двоичную запись.
2) Инвертируем все биты числа кроме первого.
3) Переводим в десятичную запись.
4) Складываем результат с исходным числом N. Полученное число является искомым числом R. Укажите наименьшее нечетное число N, для которого результат работы данного алгоритма больше 99. В ответе э
Оглавление

Привет! Задача на анализ и построение алгоритмов и исполнителей существует довольно давно, и, вообщем-то, решается на бумаге, или с помощью программы Калькулятор. Но, подумать только: сколько ошибок можно при этом допустить! Не заметил нолик, пропустил единичку - и все! Баллы потеряны.

Сегодня, на примере нескольких сложных задачек с сайта К. Полякова, я покажу, как можно решать 5 задание КЕГЭ с помощью python. Если у тебя возникнут вопросы, или ты захочешь, чтобы я разобрала другую задачу - пиши комментарий. Я обязательно отвечу и учту все пожелания.

Задача №1

Условие задачи

Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:

1) Число N переводим в двоичную запись.
2) Инвертируем все биты числа кроме первого.
3) Переводим в десятичную запись.
4) Складываем результат с исходным числом N.

Полученное число является искомым числом R. Укажите наименьшее нечетное число N, для которого результат работы данного алгоритма больше 99. В ответе это число запишите в десятичной системе счисления.

Решение

-2

Строка 1. Подбор ответа осуществляется с помощью цикла FOR.

Строки 2-4. Сохраняем значение х в переменную n, т.к. х нам понадобится при выводе в неизменном виде. С помощью функции BIN переводим число n в двоичный код, а затем с помощью функции LIST превращаем строку (обрезав первые два символа) в список.

Строки 5-9. Перебираем все символы (кроме первого) списка цифр числа, заменяем "0" на "1", и наоборот.

Строка 10. "Склеиваем" список обратно в строку (Например, ['1', '0', '1', '1'] превращаем в '1011').

Строка 11. Переводим двоичное число в десятичное

Строки 12-13. Если результат + исходное число > 99 и исходное число нечётное, то выводим исходное число.

Задача №2

Условие задачи

Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:

1) Если исходное число кратно 3, оно делится на 3, иначе из него вычитается 1.
2) Если полученное на предыдущем шаге число кратно 5, оно делится на 5, иначе из него вычитается 1.
3) Если полученное на предыдущем шаге число кратно 11, оно делится на 11, иначе из него вычитается 1.
4) Число, полученное на шаге 3, считается результатом работы алгоритма.

Сколько существует различных натуральных чисел N, при обработке которых получится R = 8?

Решение

-3

Самое главное - не забываем сохранить значение х в другой переменной (n) (строка 2)! Далее алгоритм полностью повторяет задание.

Задача № 3

Условие задачи

Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:

1) Строится двоичная запись числа N.
2) В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
3) Запись записывается справа налево (в обратную сторону).
4) Результат переводится в десятичную систему счисления.

Для какого минимального значения N в результате работы алгоритма получится число 123?

Решение

-4

Строка 1. Перебираем возможные значения

Строка 2. Переводим значение х в двоичную систему счисления, обрезаем первые 2 символа, сохраняем в переменную n.

Строка 3. Ищем индекс последнего нуля, сохраняем его в переменную index.

Строка 4. Заменяем последний ноль на две последние цифры числа.

Строка 5. Переворачиваем число.

Строка 6. Переводим число из двоичной системы счисления в десятичную.

Строки 7-8. Если получившееся число равно 123, выводим его на экран