Рекурсивные алгоритмы

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

Бей­сик

Python

SUB F(n)

PRINT n

IF n > 0 THEN

F(n - 1)

F(n - 3)

END IF

END SUB

def F(n):

print(n)

if n > 0:

F(n - 1)

F(n - 3)

Пас­каль

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

procedure F(n: integer);

begin

writeln(n);

if n > 0 then

begin

F(n - 1);

F(n - 3)

end

end

алг F(цел n)

нач

вывод n, нс

если n > 0 то

F(n - 1)

F(n - 3)

все

кон

Си

void F(int n)

{

printf("%d\n", n);

if (n > 0)

{

F(n - 1);

F(n - 3);

}

}

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

2. Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n), где n — на­ту­раль­ное число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(n) = n при n ? 2;

F(n) = F(n ? 1) ? F(n ? 2) при n> 2.

Чему равно зна­че­ние функ­ции F(7)? В от­ве­те за­пи­ши­те толь­ко на­ту­раль­ное число.

3. Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n) и G(n), где n – на­ту­раль­ное число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(1) = 1

F(n) = 2 * G(n–1) + 5 * n, при n >1

G(1) = 1

G(n) = F(n–1) + 2 * n, при n >1

Чему равно зна­че­ние функ­ции F(4) + G(4)?

В от­ве­те за­пи­ши­те толь­ко на­ту­раль­ное число.

4. Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n), где n – на­ту­раль­ное число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(1) = 1

F(2) = 1

F(n) = F(n–1) * n ? 2 * F(n–2), при n >2

Чему равно зна­че­ние функ­ции F(6)?

В от­ве­те за­пи­ши­те толь­ко на­ту­раль­ное число.

5. Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n), где n — на­ту­раль­ное число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(n) = 2 при n ? 2;

F(n) = F(n ? 1) + 3 · F(n ? 2) при n > 2.

Чему равно зна­че­ние функ­ции F(5)? В от­ве­те за­пи­ши­те толь­ко на­ту­раль­ное число.