16.01 Одна функция
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значения функции 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.
В задаче представлен рекурсивный алгоритм: функция вычисляется в зависимости от остатка от деления
на
3.
Если , функция возвращает большое число (чтобы исключить ноль, так как
– натуральное).
Если и
, вычисляем
.
Если и
, вычисляем
.
Внутри функции создаём ветвление для трёх случаев: ,
и
,
и
.
После определения функции перебираем значения
от 0 до 999 и находим наименьшее
, для которого
.
def f(n): # Базовый случай: n = 0, возвращаем большое число, так как n должно быть натуральным if n == 0: return 99999999 # Если n > 0 и остаток от деления на 3 равен 2, используем формулу F(n-1) + 3 elif n > 0 and n % 3 == 2: return f(n - 1) + 3 # Если n > 0 и остаток от деления на 3 меньше 2, используем формулу F((n - n % 3)/3) elif n > 0 and n % 3 < 2: return f((n - n % 3) / 3) # Перебираем возможные значения n для поиска наименьшего, при котором F(n) = 6 for i in range(1000): if f(i) == 6: print(i) break # Останавливаем цикл после нахождения наименьшего n
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!