Алгоритм вычисления функции F(n) задан следующими соотношениями:
F(n) = 3 при n ≤ 1
F(n) = F(n–1) + 2·F(n–2) – 5, если n > 1
Чему равно значение функции F(22)?

Показать решение

def F(n):
    if n<=1: return 3 if n>1:
        return F(n-1)+2*F(n-2)-5
print(F(22))

Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
F(0) = 0;
F(n) = F(n/2), если n > 0 и при этом n чётно;
F(n) = 1 + F(n – 1), если n нечётно.
Назовите минимальное значение n, для которого F(n) = 12.

Показать решение

def F(n):
    if n==0:
        return 0
    if n>1 and n%2==0:
        return F(n//2)
    else:
        return 1+F(n-1)
for i in range(9999):
    if F(i)==12:
        print(i)

Ответ: 4095


Определите, сколько символов * выведет эта процедура при вызове F(35):
def F( n ):
print(‘*’)
if n >= 1:
print(‘*’)
F(n-1)
F(n-2)
print(‘*’)

Показать решение

count=0
def F( n ):
  global count
  count+=1
  if n >= 1:
    count+=1
    F(n-1)
    F(n-2)
    count+=1
print(F(35))
print(count)

Ответ: 96631265


Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n*n + 5*n + 4, при n > 30
F(n) = F(n+1) + 3*F(n+4), при чётных n ≤ 30
F(n) = 2*F(n+2) + F(n+5), при нечётных n ≤ 30
Определите количество натуральных значений n из отрезка [1; 1000], для которых сумма цифр значения F(n) равна 27.

Показать решение

print('informatikstr.ru')
def F(n):
   if n > 30:
      return n * n + 5 * n + 4
   if n % 2 == 0 and n <= 30:
      return F(n + 1) + 3 * F(n + 4)
   if n % 2 != 0 and n <= 30:
      return 2 * F(n + 2) + F(n + 5)
def G(x):
   sum = 0
   while x > 0:
      sum = sum + (x % 10)
      x = x // 10
   return sum
count = 0
for i in range(1,1000):
   if G(F(i)) == 27:
      count+=1
print(count)

Ответ: 137


Обозначим через mod(a, b) остаток от деления натурального числа a на натуральное число b. Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
F(0) = 0;
F(n) = F(n/3), если n > 0 и при этом mod(n, 3) = 0;
F(n) = mod(n, 3) + F(n – mod(n, 3)), если mod(n, 3) > 0
Назовите минимальное значение n, для которого F(n) = 11
print(‘informatikstr.ru’)
def F(n):
if n == 0:
return 0
if n % 3 == 0:
return F(n // 3)
else:
return n % 3 + F(n — n % 3)
for i in range(1000):
if F(i) == 11:
print(i)
break
Ответ: 485


Алгоритм вычисления функции F(n), где n – натуральное число, задан следующим соотношениями:
F(n) = 1, при n = 1,
F(n) = n · F(n — 1), если n > 1.
Чему равно значение выражения F(2024) / F(2022)?

Показать решение

from functools import lru_cache
@lru_cache(None)
def f(n):
    if n==1:
        return 1
    if n>1:
        return n*f(n-1)
for i in range(1, 2025):
    f(i)
print(f(2024)/f(2022))

Ответ: 4094552