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

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

 

Бей­сикPython

DECLARE SUB F(n)

SUB F(n)

    IF n > 2 THEN

        PRINT n

        F(n - 3)

        F(n – 4)

    END IF

END SUB

def F(n):

    if n > 2:

        print(n)

        F(n - 3)

        F(n – 4)

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

procedure F(n: integer);

begin

    if n > 2 then begin

        writeln(n);

        F(n - 3);

        F(n – 4)

    end

end;

алг F(цел n)

нач

    если n > 2 то

        вывод n, нс

        F(n - 3)

        F(n – 4)

    все

кон

Си

void F(int n) {

    if (n > 2) {

        cout << n;

        F(n - 3);

        F(n – 4);

    }

}

 

 

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

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

Ре­ше­ние.

Число в про­це­ду­ре вы­во­дит­ся толь­ко при усло­вии n ≥ 3, по­это­му все F c ар­гу­мен­том мень­ше трёх можно не рас­смат­ри­вать. Про­мо­де­ли­ру­ем ра­бо­ту ал­го­рит­ма, не вы­пи­сы­вая F с ар­гу­мен­том мень­ше трёх.

F(10)

   F(7)

      F(4)

      F(3)

   F(6)

      F(3)

 

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

 

Ответ: 33.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2017 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: 1.5.3 Ин­дук­тив­ное опре­де­ле­ние объ­ек­тов