Задание 1. Тип заданий 11: рекурсивные алгоритмы.
- Задание:
Ниже на записан алгоритм рекурсивной процедуры F: Pascal: | Procedure F(n: integer);
begin
if n mod 2 = 0 then
writeln(‘*’)
else
writeln(‘**’);
if n>0 then
F(n-1);
end; |
Сколько символов "звёздочка" будет выведено на экран при вызове процедуры F(6)? В решении задания есть видеоразбор
- Решение:
Для начала давайте разберемся, в каком случае у нас выводится одна звездочка, а в каком — две. Из алгоритма видно, что одна звездочка выводится, если n — четное, и две — если n нечетное. При этом, если n > 0, процедура F(n) вызывает процедуру F(n-1). Давайте разберемся, какие процедуры будут вызваны при вызове процедуры F(6): F(6) -> F(5) -> F(4) -> F(3) -> F(2) -> F(1) -> F(0) В этой цепочке четные n встречаются четыре раза, а нечетные — три. То есть общее количество звездочек равно: 4*1+3*2=10 Ответ: 10 Видеоразбор задания:
|
Комментарии ()
Нет комментариев. Ваш будет первым!