Напишите в питоне пожалуйста
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n, при n ≤ 3
при n > 3:
F(n) = n + F(n–1), при чётном n;
F(n) = n*n + F(n-2), при нечётном n;
Определите количество натуральных значений n, при которых F(n) меньше, чем 10^8.
Ответы
Программа:
Python:
def F(n):
if n <= 3:
return n
if n > 3:
if n % 2 == 0: return n + F(n - 1)
else: return n * n + F(n - 2)
count = 0
while F(count + 1) <= 10**8:
count += 1
print(count)
Объяснение:
В начале регистрируем функцию F(n). Делаются проверки по условию: сначала если n ≤ 3, после - если n > 3. При выполнении второго условия делается проверка числа на чётность, и на оставшийся последний вариант (если число нечётное).
После выполнения функции регистрируется переменная count. С помощью цикла while увеличиваем значение count до тех пор, пока count + 1 меньше либо равно 10^8 (count + 1 - это и будет натуральное число, которое передаётся функции; натуральные числа начинаются с 1, а мы зарегистрировали count = 0, поэтому нужно прибавить единицу). В конце - вывод count.
Результат:
842