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




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

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

 

БейсикPython

DECLARE SUB F(n)

SUB F(n)

    IF n > 0 THEN

        PRINT n

        F(n - 3)

        F(n \ 3)

    END IF

END SUB

def F(n):

    if n > 0:

        print(n)

        F(n - 3)

        F(n // 3)

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

procedure F(n: integer);

begin

    if n > 0 then begin

        writeln(n);

        F(n - 3);

        F(n div 3)

    end

end;

алг F(цел n)

нач

    если n > 0 то

        вывод n, нс

        F(n - 3)

        F(div(n, 3))

    все

кон

Си++

void F(int n) {

    if (n > 0) {

        std: :cout << n;

        F(n - 3);

        F(n / 3);

    }

}

 

 

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

Решение.

Промоделируем работу алгоритма, не выписывая F с аргументом меньше трёх.

F(9)

   F(6)

       F(3)

          F(0)

          F(1)

            F(-2)

       F(2)

         F(-1)

         F(0)

   F(3)

      F(0)

      F(1)

 

 

Таким образом, при выполнении вызова F(9) будут напечатаны числа 9631231.

 

Ответ: 9631231.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2018 по информатике.