Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями (mod означает взять остаток при делении):
F(0) = 0;
F(n) = F(n — 1) + 3, если n > 0 и при этом n mod 3 = 2;
F(n) = F((n — n mod 3) / 3), если n > 0 и при этом n mod 3 < 2.
Укажите наименьшее возможное n, для которого F(n) = 6. Если таких значений нет, в ответе укажите -1.
def f(n):
# По условию n - натуральное
if n == 0:
return 99999999
elif n > 0 and n % 3 == 2:
return f(n - 1) + 3
elif n > 0 and n % 3 < 2:
return f((n - n % 3) / 3)
for i in range(1000):
if f(i) == 6:
print(i)
Ответ: -1