Тема 16. Рекурсия
16.02 Две функции
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела рекурсия
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#61890

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

F (n) = n2  , при n < 20

F (n) = G(n∕∕2)∗ 3− F(n − 2)  , если n > 19  и остаток от деления n  на 2 равен 0

F (n) = G(n − 2)  , если n > 19  и остаток от деления n  на 2 равен 1

G (n) = 3∗ n+ F(n − 2)  , если n < 20  и не делится на 5

G (n) = G(n − 2) + F(n∕∕5)  , если n < 20  и делится на 5

G (n) = n3  , в других случаях

Определите наибольшее значение n  из отрезка [1;480]  , при котором сумма цифр значения F(n)  равна 48.

Показать ответ и решение
def f(n):
    if n > 19 and n % 2 == 0:
        return g(n // 2) * 3 - f(n - 2)
    if n > 19 and n % 2 == 1:
        return g(n - 2)
    return n ** 2

def g(n):
    if n < 20 and n % 5 != 0:
        return 3 * n + f(n - 2)
    elif n < 20 and n % 5 == 0:
        return g(n - 2) + f(n // 5)
    return n ** 3

for i in range(480, 0, -1):
    s, summa = abs(f(i)), 0
    while s > 0:
        summa += (s % 10)
        s //= 10
    if summa == 48:
        print(i)
        break

Ответ: 478

Ошибка.
Попробуйте повторить позже

Задача 2#36055

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

F (1) = 1

F (k) = F(k− 1)⋅k

Q (1) = 1

Q (2) = 3

Q (k) = Q(k− 2)+ Q (k− 1)

Чему равно значение функции F(6)+ Q(4)  ?

Показать ответ и решение
  def f(n):
      if n == 1:
          return 1
      return f(n - 1) * n

  def q(n):
      if n == 1:
          return 1
      if n == 2:
          return 3
      return q(n - 2) + q(n - 1)

  print(f(6) + q(4))

Ответ: 727

Ошибка.
Попробуйте повторить позже

Задача 3#30455

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

F (1) = ∗ , F(2) = ∗∗ , F(3) = ∗ ∗∗ , G (1) = ∗ , G (2) = ∗∗

F (n) = F(n − 3) +G (n− 3)+ ∗∗ , при n > 3

G (n) = G(n − 1) + F(n− 1)  , при n > 2

Посчитайте количество звездочек при выполнении вызова F(9)  .

Показать ответ и решение
def F(n):
    if n < 4:
        return n
    return F(n - 3) + G(n - 3) + 2

def G(n):
    if n < 3:
        return n
    return G(n - 1) + F(n - 1)

print(F(9))

Ответ: 28

Ошибка.
Попробуйте повторить позже

Задача 4#30454

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

F (1) = ∗∗∗ , F(2) = ∗ ∗∗ , G (1) = ∗∗ , G (2) = ∗∗

F (n) = ∗∗ ∗+ G(n − 1)  , при n > 2

G (n) = F(n − 2) +∗∗ , при n > 2

Посчитайте количество звездочек при выполнении вызова F(13)  .

Показать ответ и решение
def F(n):  
    if n < 3:  
        return 3  
    return 3 + G(n - 1)  
 
def G(n):  
    if n < 3:  
        return 2  
    return F(n - 2) + 2  
 
print(F(13))

Ответ: 23

Ошибка.
Попробуйте повторить позже

Задача 5#30453

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

F (n) = n  , при n < 12

F (n) = G(n∕2)∗ 2− F(n − 1)  , если n > 11  и остаток от деления n  на 2 равен 0

F (n) = − G (n − 1)  , если n > 11  и остаток от деления n  на 2 равен 1

G (n) = F(n − 1) +n  , если n < 12  и не делится на 3

G (n) = G(n − 1) + F(n∕3)− n  , если n < 12  и делится на 3

G (n) = n∗ n  , в других случаях

Определите наибольшее значение n  из отрезка [1;1000]  , при котором сумма цифр значения F(n)  равна 33.

Примечание: знак </> в данной задаче означает целочисленное деление.

Показать ответ и решение
def f(n):
    if n > 11 and n % 2 == 0:
        return g(n // 2) * 2 - f(n - 1)
    if n > 11 and n % 2 == 1:
        return -g(n - 1)
    return n
def g(n):
    if n < 12 and n % 3 != 0:
        return f(n - 1) + n
    elif n < 12 and n % 3 == 0:
        return g(n - 1) + f(n // 3) - n
    return n * n
for i in range(1000, 0, -1):
    s, summa = abs(f(i)), 0
    while s > 0:
        summa += (s % 10)
        s //= 10
    if summa == 33:
        print(i)
        break

Ответ: 946

Ошибка.
Попробуйте повторить позже

Задача 6#30451

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

F (n) = G(n) = 11  , при n ≤ 1

F (n) = F(n − 5) +n ∗G (n∕∕4)  , при n > 1

G (n) = F(n∕∕3)+ G (n − 1)  , при n > 1

Чему равна сумма цифр значения функции G(21  )?

Показать ответ и решение
def f(n):
    if n <= 1:
        return 11
    return f(n - 5) + n * g(n // 4)

def g(n):
    if n <= 1:
        return 11
    return f(n // 3) + g(n - 1)

summa = 0
s = str(g(21))
for i in s:
    summa += int(i)

print(summa)

Ответ: 18

Ошибка.
Попробуйте повторить позже

Задача 7#30449

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

F (n) = 2∗ n∗n + 2  , при n < 3

G (n) = 2∗ n∗n + 2  , при n < 3

F (n) = F(n − 1) +G (n− 2)  , при n > 2

G (n) = G(n − 2) + n∗n − 3  , при n > 2

Чему равно значение F (15) ∗G(5)  ?

Показать ответ и решение
def F(n):  
    if n < 3:  
        return 2 * n * n + 2  
    return F(n-1) + G(n-2)  
 
def G(n):  
    if n < 3:  
        return 2 * n * n + 2  
    return G(n - 2) + n * n - 3  
 
print(F(15) * G(5))  

Ответ: 56928

Ошибка.
Попробуйте повторить позже

Задача 8#30448

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

F (n) = G(n) = 2  , при n < 3

F (n) = F(n − 1) +2 ∗G (n − 1)+ F(n∕2)  , при n > 2

G (n) = F(n − 1) +G (n∕3)+ G(n − 1)  , при n > 2

где ∕  значит целочисленное деление

Чему равно значение F (12) + G(4)  ?

Показать ответ и решение
def F(n):  
    if n < 3:  
        return 2  
    return F(n - 1) + 2 * G(n - 1) + F(n // 2)  
 
def G(n):  
    if n < 3:  
        return 2  
    return F(n - 1) + G(n // 3) + G(n - 1)  
 
print(F(12)+ G(4))  

Ответ: 29476

Ошибка.
Попробуйте повторить позже

Задача 9#30446

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

F (n) = n2  , при n > 10

F (n) = F(n +2) − 2 ∗G (n + 1)  , при n ≤ 10

G (n) = n3  , при n < 2

G (n) = F(n +1)  , при n ≥ 2

Чему равно значение функции F(18)  ?

Показать ответ и решение
def f(n):  
    if n > 10:  
        return n ** 2  
    if n <= 10:  
        return f(n + 2) - 2 * g(n + 1)  
 
 
def g(n):  
    if n < 2:  
        return n ** 3  
    else:  
        return f(n + 1)  
 
 
print(f(18))

Ответ: 324

Ошибка.
Попробуйте повторить позже

Задача 10#27998

Ниже записаны две рекурсивные функции F(n)  и G (n)  , где n – натуральное число, задан следующими соотношениями:

F (n) = n⋅n,при n ≤ 2

F (n) = F(n − 2) +G (n− 1)⋅2 − n,при n > 2

G (n) = n+ 1,при n ≤ 2

G (n) = G(n − 1) + F(n− 2)+ n,при n > 2

Определите числовое значение выражения F (5) + G(3)

Показать ответ и решение
def F(n):
    if n <= 2:
        return n * n
    if n > 2:
        return F(n - 2) + G(n - 1) * 2 - n


def G(n):
    if n <= 2:
        return n + 1
    if n > 2:
        return G(n - 1) + F(n - 2) + n

print(F(5) + G(3))

Ответ: 36

Ошибка.
Попробуйте повторить позже

Задача 11#27459

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

F (1) = 1; G (1) = 1;

F (n) = F(n − 1) − G (n− 1), при n ≥ 2

G (n) = F(n − 1) +3 ⋅G(n − 1), при n ≥ 2

Чему равно значение величины G (16)+ F(9)  ?

Показать ответ и решение
def f(n):
    if n == 1:
        return 1
    return f(n - 1) - g(n - 1)

def g(n):
    if n == 1:
        return 1
    return f(n - 1) + 3 * g(n - 1)

print(g(16) + f(9))

Ответ: 522496

Ошибка.
Попробуйте повторить позже

Задача 12#26149

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

G (n) = 1, при n < 2;

G (n) = F(n − 1) +2 ⋅G(n − 1), если n бол ьш е 1;

F (n) = 1, при n < 2;

F (n) = F(n − 1) +G (n− 1), если n нечетное и больш е 1;

F (n) = F(n − 2) +G (n− 2), если n четное и больш е 1;

Чему равно значение выражения: F (25)− G(25)  ?

 

Показать ответ и решение
def G(n):
    if n < 2:
        return 1
    if n > 1:
        return F(n-1) + 2*G(n-1)


def F(n):
    if n < 2:
        return 1
    if n % 2 == 1 and n > 1:
        return F(n-1) + G(n-1)
    if n % 2 == 0 and n > 1:
        return F(n-2) + G(n-2)


print(F(25)-G(25))

Ответ: -699883104

Ошибка.
Попробуйте повторить позже

Задача 13#26095

Алгоритм вычисления значений функций F (n)  и G (n )  , где n - целое неотрицательное число меньшее 1000, задан следующими соотношениями: («//» - целочисленное деление)

F (n) = 1, при n < 5;

F (n) = F(n∕∕5), если n > 4 и при этом n д ели тся на 5;

F (n) = n− 5 ∗(n∕∕5)+ F(n − 5 ∗(n∕∕5)), если n > 4 и при этом n не делится на 5;

G (n) = 1, при n < 7;

G (n) = G(n∕∕7), если n > 6 и при этом n дели тся на 7;

G (n) = n− 7 ∗(n∕∕7)+ G(n − 7∗(n∕∕7)),  если n > 6 и при этом n не делится на 7;

При каких(каком) значениях(значении) n, выражение: G (n) +F (n)  , меньше 3  . В качестве ответа укажите сумму таких значений n  .(Например: G (a)+ F(a) < 3  , G(b)+ F(b) < 3  . В ответ указываем сумму a  и b  ).

Показать ответ и решение
def f(n):
    if n < 5:
        return 1
    if n % 5 == 0:
        return f(n // 5)
    return n - 5 * (n // 5) + f(n - 5 * (n // 5))

def g(n):
    if n < 7:
        return 1
    if n % 7 == 0:
        return g(n // 7)
    return n - 7 * (n // 7) + g(n - 7 * (n // 7))

ans = 0
for n in range(10000):
    if g(n) + f(n) < 3:
        ans += n
print(ans)

Ответ: 15

Ошибка.
Попробуйте повторить позже

Задача 14#26068

Ниже записаны две рекурсивные функции F  и G  :

F (n) = n, пр и n <= 10

F (n) = F(n%5 )+ 1, при n > 10 и кратном 10

F (n) = n⋅F (n− 1), при n > 10 и не кр атном 10

G (n) = n⋅n + 1⋅n + 3, при n ≥ 21

G (n) = 2⋅G (n − 2)⋅G(n − 4), при четном n, которое м еньш е 21

G (n) = 2⋅G (n − 1)⋅G(n − 3), при неч етном n, которое меньш е 21

Чему равна сумма цифр данного выражения (F (G (F (G(22)))))?

Показать ответ и решение
def f(n):
    if n <= 10:
        return n
    if n % 10 == 0:
        return f(n % 5) + 1
    return n * f(n - 1)


def g(n):
    if n >= 21:
        return n * n + 1 * n + 3
    if n % 2 == 0:
        return 2 * g(n - 2) * g(n - 4)
    return 2 * g(n - 1) * g(n - 3)


print(sum(int(_) for _ in (str(f(g(f(g(22))))))))

Ответ: 681

Ошибка.
Попробуйте повторить позже

Задача 15#25962

Ниже записаны две рекурсивные функции F  и G  :

F (n) = n, при n < 10

F (n) = F(n)⋅F (n − 2), при n > 9

G (n) = n⋅3, при n < 11

G (n) = F(n2)+ F (n2 + 1)+ F(nn), когда n > 10, и не делится на 7

Чему равно выражение G (10)(F(2)) + F(5)  ?

Показать ответ и решение
def F(n):
    if n < 10:
        return n
    if n > 9:
        return F(n)*F(n-2)


def G(n):
    if n < 11:
        return n*3
    if n < 19 and n % 7 != 0:
        return F(n**2)+F(n**2+1)+F(n**n)


print(G(10)**F(2)+F(5))

Ответ: 905

Ошибка.
Попробуйте повторить позже

Задача 16#25935

Ниже записаны две рекурсивные функции F и G:

F (n) = n⋅n,при n ≤ 2

F (n) = F(n − 1) +G (n− 2),при n > 2

G (n) = n⋅4,при n ≤ 1

G (n) = G(n − 1) + F(n− 2)⋅F (n− 3),при n > 1

Помогите АР определить числовое значение выражения

F (7)+ G (8)

Показать ответ и решение
def F(n):
    if n <= 2:
        return n*n
    if n > 2:
        return F(n-1)+G(n-2)


def G(n):
    if n <= 1:
        return n*4
    if n > 1:
        return G(n-1)+F(n-2)*F(n-3)


print(F(7)+G(8))

Ответ: 776

Ошибка.
Попробуйте повторить позже

Задача 17#25776

Ниже записаны две рекурсивные функции F и G:

F (n) = n⋅3,при n ≤ 1

F (n) = F(n − 2) +2 ⋅G(n − 1),при n > 1

G (n) = n,при n ≤ 2

G (n) = G(n − 2) + 2⋅F(n − 2) ⋅F(n− 2),при n > 2

Помогите АР определить числовое значение выражения

F (5)+ G (6)

Показать ответ и решение
def f(n):
    if n <= 1:
        return n * 3
    if n > 1:
        return f(n - 2) + 2 * g(n - 1)
def g(n):
    if n <= 2:
        return n
    if n > 2:
        return g(n - 2) + 2 * f(n - 2) * f(n - 2)
print(f(5) + g(6))

Ответ: 3237

Ошибка.
Попробуйте повторить позже

Задача 18#25614

Ниже записаны две рекурсивные функции F и G:

F (n) = n⋅2,при n ≤ 2

F (n) = F(n − 2) +G (n− 2),при n > 2

G (n) = n,при n ≤ 3

G (n) = G(n − 1) + F(n− 2)⋅F (n− 2),при n > 3

Помогите АР определить числовое значение выражения

F (6)+ G (8)

Показать ответ и решение
def f(n):
    if n <= 2:
        return n * 2
    if n > 2:
        return f(n - 2) + g(n - 2)


def g(n):
    if n <= 3:
        return n
    if n > 3:
        return g(n - 1) + f(n - 2) * f(n - 2)


print(f(6) + g(8))

Ответ: 750

Ошибка.
Попробуйте повторить позже

Задача 19#24417

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

F (1) = 1;  G(1) = 1;

F (n) = F(n − 1) − 2 ⋅G(n − 1),при n ≥ 2

G (n) = F(n − 1) +2 ⋅G(n − 1),при n ≥ 2

Чему равно значение величины G (7)+ F(4)  ?

Показать ответ и решение
def f(n):
    if n == 1:
        return 1
    return f(n - 1) - 2 * g(n - 1)

def g(n):
    if n == 1:
        return 1
    return f(n - 1) + 2 * g(n - 1)
print(g(7) + f(4))

Ответ: -108

Ошибка.
Попробуйте повторить позже

Задача 20#18689

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

F (0) = 2  ;

F (1) = 5  ;

F (n) = F(n − 1) ∗F(n − 2)  , при n > 1  ;

G (n) = 0  , при n < 5  ;

G (5) = 1  ;

G (n) = G(n − 1) + F(n− 2)  , при n > 5  .

Определите значение F (5)+ G(8)  .

Показать ответ и решение
def f(n):  
    if n == 0:  
        return 2  
    if n == 1:  
        return 5  
    return f(n - 1) * f(n - 2)  
 
def g(n):  
    if n < 5:  
        return 0  
    if n == 5:  
        return 1  
    return g(n - 1) + f(n - 2)  
 
print(f(5) + g(8))

Ответ: 12550501
Рулетка
Вы можете получить скидку в рулетке!