ФИПИ · ЕГЭ · Информатика · Задание 5

Задание 5. Формальное исполнение алгоритма

73 заданий открытого банка ФИПИ: впишите ответ, при затруднении — подсказка; после ответа — разбор по шагам.

0
Решено
0
Правильно
0%
Точность

Задания открытого банка ФИПИ «Задание 5. Формальное исполнение алгоритма» (информатика). Ответ вписывается так же, как в бланк ЕГЭ: число, слово или цифры подряд, без пробелов; если в ответе два числа — через пробел, как в таблице ответа (по строкам).

Неофициальная копия. Условия заданий — из открытого банка заданий ФИПИ (fipi.ru); номер у каждого задания открывает его в банке ФИПИ. Ответы, подсказки, разборы и рисунки подготовлены reknow.ru. Нашли ошибку — нажмите «Сообщить об ошибке» у задания.

Серия: 0

О теме

Задание 5 ЕГЭ по информатике. Формальное исполнение простого алгоритма, записанного на естественном языке. На странице — 73 задания открытого банка ФИПИ: ответ проверяется сразу, есть подсказка и подробный разбор.

Примеры заданий

Это несколько заданий из тренажёра, остальные — в тренажёре в начале страницы.

ФИПИ № 09DBe5 ↗

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится троичная запись числа N.

2. Далее эта запись обрабатывается по следующему правилу:

а) если число N делится на 3, то к этой записи дописываются две последние троичные цифры;

б) если число N на 3 не делится, то остаток от деления умножается на 5, переводится в троичную запись и дописывается в конец числа.

Полученная таким образом запись является троичной записью искомого числа R.

3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 1110 = 1023 результатом является число 1021013 = 30710, а для исходного числа 1210 = 1103 это число 110103 = 11110.

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

Показать ответ
Ответ: 141
Решение.
  1. При N mod 3 = 0 дописываются две последние троичные цифры; иначе остаток ×5 (5 = 123 или 10 = 1013) дописывается в троичном виде.
  2. Перебор показывает: наименьшее R > 133 равно 141 (например, N = 15 = 1203 → 120203 = 141).
  3. Программа:
    def t3(n):
        s = ''
        while n:
            s = str(n % 3) + s
            n //= 3
        return s
    def R(N):
        s = t3(N)
        s = s + s[-2:] if N % 3 == 0 else s + t3(N % 3 * 5)
        return int(s, 3)
    print(min(R(N) for N in range(1, 3000) if R(N) > 133))
  4. Ответ: 141.
ФИПИ № 16FcAD ↗

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится двоичная запись числа N.

2. Далее эта запись обрабатывается по следующему правилу:

а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;

б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.

Полученная таким образом запись является двоичной записью искомого числа R.

3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 это число 11012 = 1310.

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

Показать ответ
Ответ: 12
Решение.
  1. R на один разряд длиннее N; 19 = 100112, поэтому подходят только N до 4 разрядов.
  2. 15 → 10110 = 22; 14 → 11101 = 29; 13 → 11011 = 27; 12 = 1100 (две единицы — чётно) → 11000 → 10000 = 16 ≤ 19.
  3. Наибольшее N = 12.
  4. Программа:
    def R(N):
        b = bin(N)[2:]
        if b.count('1') % 2 == 0:
            b = '10' + (b + '0')[2:]
        else:
            b = '11' + (b + '1')[2:]
        return int(b, 2)
    print(max(N for N in range(1, 1000) if R(N) <= 19))
  5. Ответ: 12.