Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln(n); if n < 5 then...

0 голосов
709 просмотров

Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln(n); if n < 5 then begin F(n+2); F(n*2) end end; Отметьте числа, которые будут выведены при вызове F(1). 1 2 3 4 5 6 8 10 14


Информатика (14 баллов) | 709 просмотров
Дан 1 ответ
0 голосов

Ответ:

1,2,3,4,5,6,8

Объяснение:

Что напечатается:

1

3

5

6

2

4

6

8

4

6

8

При вызове F(1) печатается 1. Дальше вызовется F(3)

Напечатается 3. Вызовется F(5)

Напечатается 5. F(7) не вызывается, т.к. 7>5

Теперь вызывается вторая функция для F(3), то есть F(6)

Печатается 6. Дальше вызывается вторая функция для F(1), то есть F(2)

Печатается 2. Вызывается первая функция для F(2), т.е. F(4).

Печатается 4. Вызывается первая функция для F(4), т.е. F(6).

Печатается 6. Вызывается вторая функция для F(4), т.е. F(8)

Печатается 8. Вызывается вторая функция для F(2), т.е. F(4)

Печатается 4. Вызываются первая и вторая функции F(6) и F(8)

Печатается 6

Печатается 8

(162 баллов)