Как лучше решить задачу(см. приложение)

Рейтинг: 0Ответов: 1Опубликовано: 17.06.2023

Текст задачи

results = set()
def execute(n, c):
    if c == 4:
        results.add(n)
        return 0
    return execute(n+2, c+1), execute(n*3, c+1)

execute(1, 0)
print(results)

Я решил так, но я не уверен, что это правильный, а уж тем более эффективный способ решения задачи. Подскажите, пожалуйста.

Ответы

▲ 1Принят

Технически, это можно сделать так:

from itertools import product

def p(x):
    return x+2

def m(x):
    return x*3

res = set()
for comb in product((p, m), repeat=4):
    r = 1
    for f in comb:
        r = f(r)
    res.add(r)
print(len(res))