СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 11 № 15133

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

 

 

БейсикPython

SUB F(n)

    IF n > 0 THEN

         F(n \ 3)

         F(n − 3)

         PRINT N

    END IF

END SUB

 

def F(n):

    if n > 0:

        F(n // 3)

        F(n − 3)

        print(n)

 

ПаскальАлгоритмический язык

procedure F(n: integer);

begin

    if n > 0 then begin

        F(n div 3);

        F(n − 3);

        write(n)

    end

end;

 

алг F(цел n)

нач

    если n > 0 то

        F(div(n,3))

        F(n − 3)

        вывод n

    все

кон

 

С++

void F (int n)

{

     if (n > 0) {

        F (n / 3);

        F (n − 3);

        std::cout << n;

    }

}

 

 

 

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

Решение.

Первым действием процедура F(9) вызовет процедуру F(n / 3), т.е. F(3), которая вызовет процедуру F(1), которая вызовет процедуру F(0) и следующим шагом своего алгоритма обратится к процедуре F(n − 3), т.е. вызовет процедуру F(-2), после чего на экран будет выведена единица. После этого управление вернётся к процедуре F(3), которая начнёт выполнять следующий шаг своего алгоритма и выведет на экран число 3.

После этого управление вернётся к процедуре F(9), которая следующим шагом своего алгоритма обратится к процедуре F(n − 3), т.е. обратится к процедуре F(6), которая вызовет процедуру F(2), после чего на экран будет выведено число 2.

Далее процедура F(6) начнёт выполнять следующий шаг своего алгоритма, в результате чего будет вызвана процедура F(3), которая вызовет процедуры F(1) и F(0), после чего на экран будет выведена единица, а после этого на экран будет выведено число 3.

После этого управление вернётся к процедуре F(6), которая начнёт выполнять следующий шаг своего алгоритма и выведет на экран число 6.

Последним действием процедуры F(9) будет вывод на экран числа 9.

 

Ответ: 1321369.