В этой задаче в 16 вариантах из книги Евича Л.Н., Иванова С.О., Назарьянц Е.Г., Ханин Д.И. фактически 2 возможных варианта программного решения: – с применением рекурсии или нет.
В варианте 1
'''
Алгоритм вычисления значения функции F(n), где n - натуральное число,
задан следующими соотношениями:
F(1)=1; F(2)=3;
F(n)=F(n-1)+n*(F(n-2), если n>2
Чему равно значение выражения F(1890)/F(1885)?
В ответе укажите целую часть
def f(n):
if n<=1:
return 1
elif n==2:
return 3
else:
return f(n-1)+n*f(n-2)
print(f(10))
'''
#Код выше не нужен
a=1
b=3
n=0
for i in range(3,1891):
c=b+i*a
a=b
b=c
if i==1885:
n=c
print(int(c/n))
#Ответ 164161991 и не понадобилось использовать рекурсию
В большинстве других вариантов надо использовать подпрограмму с рекурсией, например в варианте 10
'''
Алгоритм вычисления значения функции F(n), где n - натуральное число,
задан следующими соотношениями:
F(1)=4; F(2)=4; F(3)=4;
F(n)=5F(n-3) если n делится нацело на 4
F(n)=2F(n -1)+4n, если n>3 и не делится нацело на 4
Чему равно значение функции F(16)
'''
def F(n):
if n<=3:
return 4
elif n % 4==0:
return 5*F(n-3)
else :
if n>3:
return 2*F(n-1)+4*n
print(F(16))
#Ответ 32060