Задача к ЕГЭ по информатике на тему «одна функция» №4

Рекурсивная функция F(n) задана следующими соотношениями:

1. вывести n

2. вывести F (n − 3),F (n −  2)  при n >  4  » class=»math» src=»/images/inform/quest/quest-573-3.svg» width=»auto»> </p>
<p class= Что выведет программа при вызове F (7)  ? В ответе запишите последовательность выведенных цифр слитно (без пробелов).

Решение руками:

Рассмотрим последовательно, что будет выводится на экран, начиная с F(1)  . Пока n ≤ 4  другие функции вызываться не будут. С помощью стрелочки → обозначим печать числа на экране.

F(1) →  1  ; F (2 ) → 2  ; F (3) → 3  ; F (4) → 4  .

Далее при n > 4  » class=»math» src=»/images/inform/reshen/reshen-573-8.svg» width=»auto»> дополнительно будут вызываться функции. Мы будем возвращаться каждый раз к предыдущим значениям и добавлять числа в последовательность: </p>
<p class= F(5) →  5  ;

→  F (2) → 2  ;

→  F (3) → 3  .

F(6) →  6  ;

→  F (3) → 3  ;

→  F (4) → 4  .

F(7) →  7  ;

→  F (4) → 4  ;

→  F (5) → 523  .

Следовательно, итоговая последовательность →  74523  .

 

Решение программой:

def f(n):
    print(n)
    if n > 4:
        f(n - 3)
        f(n - 2)

print(f(7))

Получаем ответ: 74523.

Ответ: 74523
Оцените статью
Я решу все!