Задания
Версия для печати и копирования в MS Word
Тип Д16 № 11112
i

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

 

Бей­сикPython

SUB F(n)

  IF n > 0 THEN

    PRINT "*"

    F(n - 1)

    F(n \ 3)

  END IF

END SUB

def F(n):

    if n > 0:

        print("*")

        F(n - 1)

        F(n // 3)

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

алг F(цел n)

нач

  если n > 0 то

    вывод "*"

    F(n - 1)

    F(div(n, 3))

  все

кон

procedure F(n: integer);

begin

  if n > 0 then

  begin

    writeln('*');

    F(n - 1);

    F(n div 3)

  end

end

Си

void F(int n)

{

  if (n > 0)

  {

    printf("*");

    F(n - 1);

    F(n / 3);

  }

}

 

 

Сколь­ко сим­во­лов «звёздоч­ка» будет на­пе­ча­та­но на экра­не при вы­пол­не­нии вы­зо­ва F(6)?

Спрятать решение

Ре­ше­ние.

Рас­смот­рим струк­ту­ру вы­зо­ва функ­ций.

 

 F(6)

 {

    F(5)

    F(2)

    {

       F(4)

       F(1)

       F(1)

       F(0)

       {

          F(3)

          F(1)

          F(0)

          F(0)

          F(0)

          F(0)

            {

            F(2)

            F(1)

            F(0)

            {

              F(1)

              F(0)

                {

                F(0)

                }

              }

            }

       }

    }

 }

 

Число на­пе­ча­тан­ных «звёздо­чек» равно числу вы­зо­вов функ­ции F(n) с ар­гу­мен­том не рав­ным нулю, то есть равно 11.

 

Ответ: 11.

Источник: ЕГЭ по ин­фор­ма­ти­ке 23.03.2016. До­сроч­ная волна
Раздел кодификатора ФИПИ: 1.5.3 Ин­дук­тив­ное опре­де­ле­ние объ­ек­тов
Vlad Boltenkov 08.06.2016 16:34

F(6)

{

    F(5)

    F(2)

    {

     F(4)

     F(1)

     F(1) - от­ку­да эта еди­ни­ца

     F(0)

     {

         F(3)

         F(1)

         F(0)

         F(0)

         F(0)

         F(0)

            {

            F(2)

            F(1)

            F(0)

            {

             F(1)

             F(0)

                {

                F(0)

Сергей Никифоров

По­яс­ня­ем: F(5) вы­зы­ва­ет F(4) и F(1), а F(2) вы­зы­ва­ет F(1) и F(0).