Задания
Версия для печати и копирования в MS Word
Тип 16 № 92558
i

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

 

F(n)  =  1 при n  =  1;

F(n)  =  n × F(n − 1), если n > 1.

 

Чему равно зна­че­ние вы­ра­же­ния (F(3038 + 5 × F(3037)) / F(3036)?

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

from functools import *

@lru_cache(1000)

def f(n):

if n == 1:

return 1

if n > 1:

return n * f(n - 1)

return n * f(n - 1)

for n in range(1, 3038+1):

f(n)

print((f(3038) + 5 * f(3037)) // f(3036))

 

 

Ответ: 9241591.