(Питон) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n*n + 2*n + 1, при n > 25
F(n) = 2*F(n+1) + F(n+3), при чётных n ≤ 25
F(n) = F(n+2) + 3*F(n+5), при нечётных n ≤ 25
Определите количество натуральных значений n из отрезка [1; 1000], для которых значение F(n) не содержит цифру 0.
Я написала программу в чем ошибка?
Ответы
Программа:
Python:
def F(n):
if n > 25:
return n*n + 2*n + 1
if (n % 2 == 0) and (n <= 25):
return 2 * F(n + 1) + F(n + 3)
else:
return F(n + 2) + 3 * F(n + 5)
count = 0
for n in range(1, 1000 + 1):
if "0" not in str(F(n)):
count += 1
print(count)
Объяснение:
В начале, как необходимо по условию, записываем функцию. Проверку на чётность и нечётность делаем с помощью проверки делимости на 2. После окончания функции регистрируем переменную count - здесь будет храниться количество натуральных чисел. С помощью цикла переменная n принимает значения от 1 до 1000 (включительно). Если 0 не находится в полученном числе, увеличиваем значение переменной count на единицу. В конце выводим это значение count.
Результат:
575
#SPJ3