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

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

 

Бей­сикPython

SUB F(n)

    IF n < 10 THEN

        F(3*n - 1)

        PRINT N

        F(2*n + 1)

    END IF

END SUB

 

def F(n):

    if n < 10:

        F(3*n - 1)

        print(n)

        F(2*n + 1)

 

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

procedure F(n: integer);

begin

    if n < 10 then begin

        F(3*n - 1);

        write(n);

        F(2*n + 1)

    end

end;

 

алг F(цел n)

нач

    если n < 10 то

        F(3*n - 1)

        вывод n

        F(2*n + 1)

    все

кон

С++

void F(int n)

{

    if (n < 10) {

        F(3*n - 1);

        std::cout << n;

        F(2*n + 1);

    }

}

 

 

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

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

Ре­ше­ние.

Про­мо­де­ли­ру­ем дей­ствие ал­го­рит­ма.

F(1)

    F(2)

        F(5)

            F(14)

            5

            F(11)

        2

        F(5)

            F(14)

            5

            F(11)

    1

    F(3)

        F(8)

            F(23)

            8

            F(17)

        3

        F(7)

            F(20)

            7

            F(15)

 

Таким об­ра­зом, по­лу­ча­ем ответ: 5251837.

 

Ответ: 5251837.


Аналоги к заданию № 18492: 18623 Все

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