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

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

 

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

SUB F(n)

  IF n > 0 THEN

    F(n - 4)

    PRINT n

    F(n \ 3)

  END IF

END SUB

procedure F(n: integer);

begin

  if n > 0 then

  begin

    F(n - 4);

    writeln(n);

    F(n div 3)

  end

end;

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

void F(int n)

{

if (n > 0)

  {

    F(n - 4);

    cout << n;

    F(n / 3);

  }

}

алг F(цел n)

нач

  если n > 0 то

F(n - 4)

вывод n, нс

F(div(n, 3))

  все

кон 

Python

def F(n):

    if n > 0:

        F(n - 4)

        print(n)

        F(n // 3)

 

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

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

Ре­ше­ние.

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

F(9)

   F(5)

      F(1)

      F(1)

   F(3)

      F(1)

 

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

 

Ответ: 20.

Раздел кодификатора ФИПИ: 1.5.3 Ин­дук­тив­ное опре­де­ле­ние объ­ек­тов