Главная / 4 мая 2026 г.

№23. Оператор присваивания и ветвления. Перебор вариантов, построение дерева

344) (Демо-2026) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Вычесть 1
B. Вычесть 4
C. Найти целую часть от деления на 3

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 19 результатом является 2, при этом траектория вычислений не содержит числа 7 и содержит 13?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 1, y, z) + f(x - 4, y, z) + f(x // 3, y, z)

print(f(19, 13, [7]) * f(13, 2, [7]))

345) (ЕГКР-2025) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Вычесть 3
B. Вычесть 6
C. Найти целую часть от деления на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 86 результатом является 12, при этом траектория вычислений не содержит числа 36 и содержит 53?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 3, y, z) + f(x - 6, y, z) + f(x // 2, y, z)

print(f(86, 53, [36]) * f(53, 12, [36]))

346) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 1
B. Прибавь 5
C. Умножь на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 5 результатом является 50, при этом траектория вычислений содержит хотя бы одно из чисел 13 или 23?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 1, y, z) + f(x + 5, y, z) + f(x * 2, y, z)

print(sum((
    f(5, 13, [23]) * f(13, 50, [23]),
    f(5, 23, [13]) * f(13, 50, [13]),
    f(5, 13, []) * f(13, 23, []) * f(23, 50, [])
)))

347) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Вычесть 3
B. Вычесть 5
C. Найти целую часть от деления на 3

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 80 результатом является 3, при этом траектория вычислений содержит хотя бы одно из чисел 18 или 38?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 3, y, z) + f(x - 5, y, z) + f(x // 3, y, z)

print(sum((
    f(80, 18, [38]) * f(18, 3, [38]),
    f(80, 38, [18]) * f(38, 3, [18]),
    f(80, 38, []) * f(38, 18, []) * f(18, 3, [])
)))

348) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 2
B. Прибавь 5
C. Умножь на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 7 результатом является 85, при этом траектория вычислений содержит хотя бы одно из чисел 23 или 45?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 2, y, z) + f(x + 5, y, z) + f(x * 2, y, z)

print(sum((
    f(7, 23, [45]) * f(23, 85, [38]),
    f(7, 45, [23]) * f(45, 85, [23]),
    f(7, 23, []) * f(23, 45, []) * f(45, 85, [])
)))

349) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Вычесть 3
B. Вычесть 4
C. Найти целую часть от деления на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 78 результатом является 2, при этом траектория вычислений содержит хотя бы одно из чисел 30 или 42?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 3, y, z) + f(x - 4, y, z) + f(x // 2, y, z)

print(sum((
    f(78, 30, [42]) * f(30, 2, [42]),
    f(78, 42, [30]) * f(42, 2, [30]),
    f(78, 42, []) * f(42, 30, []) * f(30, 2, [])
)))

350) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 2
B. Прибавь 3
C. Умножь на 4

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 5 результатом является 65, при этом траектория вычислений содержит ровно одно из чисел 21 или 41 (но не оба одновременно)?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 2, y, z) + f(x + 3, y, z) + f(x * 4, y, z)

print(sum((
    f(5, 21, [41]) * f(21, 65, [41]),
    f(5, 41, [21]) * f(41, 65, [21])
)))

351) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Вычесть 2
B. Вычесть 3
C. Найти целую часть от деления на 5

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 63 результатом является 3, при этом траектория вычислений содержит ровно одно из чисел 25 или 47 (но не оба одновременно)?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 2, y, z) + f(x - 3, y, z) + f(x // 5, y, z)

print(sum((
    f(63, 25, [47]) * f(25, 3, [47]),
    f(63, 47, [25]) * f(47, 3, [25])
)))

352) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 1
B. Умножь на 2
C. Умножь на 3

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 3 результатом является 112, при этом траектория вычислений содержит ровно одно из чисел 36 или 88 (но не оба одновременно)?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 1, y, z) + f(x * 2, y, z) + f(x * 3, y, z)

print(sum((
    f(3, 36, [88]) * f(36, 112, [88]),
    f(3, 88, [36]) * f(88, 112, [36])
)))

353) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Вычесть 1
B. Найти целую часть от деления на 2
C. Найти целую часть от деления на 3

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 106 результатом является 6, при этом траектория вычислений содержит ровно одно из чисел 48 или 61 (но не оба одновременно)?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 1, y, z) + f(x // 2, y, z) + f(x // 3, y, z)

print(sum((
    f(106, 48, [61]) * f(48, 6, [61]),
    f(106, 61, [48]) * f(61, 6, [48])
)))

354) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 2
B. Прибавь 3
C. Умножь на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 5 результатом является 55, при этом траектория вычислений содержит 15 или 20, и не содержит чисел 18 и 30?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 2, y, z) + f(x + 3, y, z) + f(x * 2, y, z)

print(sum((
    f(5, 15, [20, 18, 30]) * f(15, 55, [20, 18, 30]),
    f(5, 20, [15, 18, 30]) * f(20, 55, [15, 18, 30]),
    f(5, 15, [18, 30]) * f(15, 20, [18, 30]) * f(20, 55, [18, 30]))
)))

355) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 3
B. Прибавь 4
C. Умножь на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 3 результатом является 63, при этом траектория вычислений содержит 15 или 26, и не содержит чисел 20 и 33?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 3, y, z) + f(x + 4, y, z) + f(x * 2, y, z)

print(sum((
    f(3, 15, [26, 20, 33]) * f(15, 63, [26, 20, 33]),
    f(3, 26, [15, 20, 33]) * f(26, 63, [15, 20, 33]),
    f(3, 15, [20, 33]) * f(15, 26, [20, 33]) * f(26, 63, [20, 33]))
)))

356) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 1
B. Прибавь 3
C. Умножь на 3

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является 38, при этом траектория вычислений содержит 25 или 26, и не содержит чисел 22 и 33?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 1, y, z) + f(x + 3, y, z) + f(x * 3, y, z)

print(sum((
    f(2, 25, [26, 22, 33]) * f(25, 38, [26, 22, 33]),
    f(2, 26, [25, 22, 33]) * f(26, 38, [25, 22, 33]),
    f(2, 25, [22, 33]) * f(25, 26, [22, 33]) * f(26, 38, [22, 33]))
)))

357) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 2
B. Прибавь 3
C. Умножь на 3

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является 55, при этом траектория вычислений содержит 15 или 26, и не содержит чисел 12 и 40?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 2, y, z) + f(x + 3, y, z) + f(x * 3, y, z)

print(sum((
    f(1, 15, [26, 12, 40]) * f(15, 55, [26, 12, 40]),
    f(1, 26, [15, 12, 40]) * f(26, 55, [25, 12, 40]),
    f(1, 15, [12, 40]) * f(15, 26, [12, 40]) * f(26, 55, [12, 40]))
)))

358) У исполнителя имеются три команды, которые обозначены латинскими буквами:

A. Прибавь 1
B. Прибавь 5
C. Умножь на 3

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является 49, при этом траектория вычислений содержит 18 или 30, и не содержит чисел 28 и 36?

Решение
def f(x, y, z):
    if x > y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x + 1, y, z) + f(x + 5, y, z) + f(x * 3, y, z)

print(sum((
    f(2, 18, [30, 28, 36]) * f(18, 49, [30, 28, 36]),
    f(2, 30, [18, 28, 36]) * f(30, 49, [18, 28, 36]),
    f(2, 18, [28, 36]) * f(18, 30, [28, 36]) * f(30, 49, [28, 36]))
)))

359) (Апробация-2026) У исполнителя имеются две команды, которые обозначены латинскими буквами:

A. Вычти 1
B. Найти целую часть от деления на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 40 результатом является 6, при этом траектория вычислений содержит число 17?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 1, y, z) + f(x // 2, y, z)

print(f(40, 17, []) * f(17, 6, []))

360) (Апробация-2026) У исполнителя имеются две команды, которые обозначены латинскими буквами:

A. Вычти 1
B. Найти целую часть от деления на 2

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 50 результатом является 5, при этом траектория вычислений содержит число 16?

Решение
def f(x, y, z):
    if x < y:
        return 0
    if x in z:
        return 0
    if x == y:
        return 1
    return f(x - 1, y, z) + f(x // 2, y, z)

print(f(50, 16, []) * f(16, 5, []))