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


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

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

 

Бей­сикПас­каль

SUB F(n)

  IF n > 0 THEN

    F(n - 4)

    F(n \ 3)

    PRINT n

  END IF

END SUB

procedure F(n: integer);

begin

  if n > 0 then

  begin

    F(n - 4);

    F(n div 3);

    writeln(n)

  end

end;

Си++Ал­го­рит­ми­че­ский язык

void F(int n)

{

if (n > 0)

  {

    F(n - 4);

    F(n / 3);

    cout << n << endl;

  }

}

алг F(цел n)

нач

  если n > 0 то

    F(n - 4)

    F(div(n, 3))

    вывод n, нс

  все

кон

Python

def F(n):

    if n > 0:

        F(n - 4)

        F(n // 3)

        print(n)

 

Чему равна сумма всех чисел, на­пе­ча­тан­ных на экра­не при вы­пол­не­нии вы­зо­ва F(10)?

Ре­ше­ние.

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

F(10)

   F(6)

      F(2)

      F(2)

   F(3)

      F(1)

 

Сло­жим все числа, по­лу­чим 24.

 

При­ме­ча­ние. От­ри­ца­тель­ные зна­че­ния функ­ции ни­че­го не вы­ве­дут на экран, так как не будет вы­пол­не­но усло­вие if n > 0.

 

Ответ: 24.