Задача к ЕГЭ по информатике на тему «одна функция» №18

Алгоритм вычисления значения функции F(n)  , где n  — целое неотрицательное число, задан следующими соотношениями:

F (n) = n  , при <img alt="n

F (n) = F(n∕∕2)∗ 2− F(n − 1)  , если 11 » class=»math» src=»/images/inform/quest/quest-3343-6.svg» width=»auto»> и остаток от деления n  на 2 равен 0

F (n) = − F (n − 1)  , если 11 » class=»math» src=»/images/inform/quest/quest-3343-9.svg» width=»auto»> и остаток от деления n  на 2 равен 1

Определите наименьшее значение n  из отрезка [1;1000]  , при котором сумма цифр значения F (n)  равна 10.

def f(n):
    if n < 12:
        return n
    if n > 11 and n % 2 == 0:
        return f(n // 2) * 2 - f(n - 1)
    if n > 11 and n % 2 == 1:
        return -f(n - 1)


for i in range(1, 1000):
    s = abs(f(i))
    summa = 0
    while s > 0:
        summa += (s % 10)
        s //= 10
    if summa == 10:
        print(i)
        break

Ответ: 22
Оцените статью
Я решу все!