Подготовка к ЕГЭ. Информатика. Задача 16

Автор: | 14.03.2024

В этой задаче в 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

Задача №16. Ссылка на яндекс диск

What are you working on?