Задание 16. Вычисление значений рекурсивной функции
Решение задач
Демо-2024
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n, если n > 2024,
F(n) = n · F(n + 1), если n <= 2024
Чему равно значение выражения F(2022) / F(2024)?
Ответ: 4090506
Решение
f = {}
f[2025] = 2025
for n in range(2024, 2021, -1):
f[n] = n * f[n + 1]
print(f[2022] // f[2024])
ЕГЭ-2024
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 1, при n = 1;
F(n) = (n + 1)·F(n - 1) при n > 1
Чему равно значение выражения (F(2024) + 3·F(2023)) / F(2022)?
Ответ: 4104672
f = {}
f[1] = 1
for n in range(2, 2025):
f[n] = (n + 1) * f[n - 1]
print((f[2024] + 3 * f[2023]) // f[2022])
Демо 2025
Алгоритм вычисления значения функции F(n)F(n), где nn — натуральное число, задан следующими соотношениями:
F(n)=1 при n=1;
F(n)=(n−1)×F(n−1), если n>1
Чему равно значение выражения (F(2024)+2×F(2023))/F(2022)?
Ответ: 4094550
Решение
f = {}
f[1] = 1
for n in range(2, 2026):
f[n]=(n-1)*f[n-1]
print((f[2024] + 2 * f[2023]) // f[2022])
Ответ: 4102638
f = {}
for n in range(1, 2025):
if n == 1:
f[1] = 1
elif n == 2:
f[2] = 2
else:
f[n] = n*(n-1) + f[n - 1]-f[n-2]
print(f[2024]+f[2020]-f[2019])
Ответ: 530
f = {}
f[1] = 1
f[2] = 2
for n in range(3, 33):
if n % 2 == 1:
f[n] = 2 * (n + 1) + f[n - 2] - 5
else:
f[n] = 2 * (n - 1) + f[n - 1] +2
print(f[32])
Ответ; 887040
f = {}
f[1] = 1
f[2] = 1
for n in range(3, 25):
if n % 2 == 1:
f[n] = f[n - 1] + f[n - 2]
else:
f[n] = sum(f.values())
print(f[24])
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = F(n/2) + 5, если n чётное;
F(n) = F(n/5) + 2, если n нечётное и делится на 5;
F(n) = 0, если n нечётное и не делится на 5.
Сколько различных значений принимает функция F(n) на отрезке [1; 1000000]?
Ответ: 78
f = {}
ans = set()
for n in range(1, 1000000+1):
if n % 2 == 0:
f[n] = f[n//2] + 5
else:
if n % 5 == 0:
f[n] = f[n//5] + 2
else:
f[n] = 0
ans.add(f[n])
print(len(ans))
Ответ: 2024
Решение
f = {}
for n in range(1, 3064):
if n <= 10:
f[n] = n * 2
else:
if n % 2 == 0:
f[n] = f[n - 3] - f[n - 9] * 2
else:
f[n]=f[n-2]*2-f[n-7]
s=str(f[3063])
print(sum(map(int, s)))
f = {}
f[41] = 41
for n in range(42, 9095):
if n % 2 == 0:
f[n] = f[n - 1] - n
else:
f[n]=n*f[n-2]
print(f[9094] // f[9089])
Ответ: 1013
f = {}
s = set()
for n in range(2028, 0, -1):
if n >= 2024:
f[n] = 1
else:
f[n] = f[n + 2] + f[n + 4]
s.add(f[n])
print(len(s))
Домашнее задание
Перейти на сайт ФИПИ "Открытый банк заданией ЕГЭ"
2. Раскрыть вкладку "ПОДБОР ЗАДАНИЙ" , в таблице выбрать вариант задания и ввести этот номер в окно "Номер задания"
3. Решить задание и проверить решение на сайте
Задания открытого банка по информатике
859446 |
7C657B |
1644D5 |
2C19E5 |
0AEBF1 |
4254B4 |
5F7DD8 |
3E7B68 |
DB8EF2 |
7C192E |
FF255D |
7C0639 |
5838F2 |
D9A32B |
FE70A9 |
45D78C |
4D7975 |
4408DC |
789B96 |
C0EC82 |
0E2072 |
8C4B9D |
EFFD84 |
|