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




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

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

 

 

БейсикPython

SUB F(n)

    IF n < 8 THEN

         F(n + 3)

         PRINT N

         F(2 * n)

    END IF

END SUB

 

def F(n):

    if n < 8:

         F(n + 3)

        print(n)

         F(2 * n)

 

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

procedure F(n: integer);

begin

    if n < 8 then begin

        F(n + 3);

        write(n);

        F(2 * n);

    end

end;

 

алг F(цел n)

нач

    если n < 8 то

        F(n + 3)

        вывод n

        F(2 * n)

    все

кон

 

С++

void F (int n)

{

     if (n < 8) {

        F (n + 3);

        std::cout << n;

        F (2 * n);

    }

}

 

 

 

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

Решение.

Первым действием процедура F(1) вызовет процедуру F(4), которая вызовет процедуру F(7). Процедура F(7) выведет на экран число 7. Следующим шагом своего алгоритма процедура F(4) выведет на экран число 4.

Следующим шагом своего алгоритма процедура F(1) выведет на экран число 1, после чего будет вызвана процедура F(2), которая вызовет процедуру F(5). После этого процедура F(5) выведет на экран число 5. Далее процедура F(2) следующим шагом своего алгоритма выведет на экран число 2 и вызовет процедуру F(4). Процедура F(4) вызовет процедуру F(7). Процедура F(7) выведет на экран число 7. Следующим шагом своего алгоритма процедура F(4) выведет на экран число 4.

 

Ответ: 7415274.