
Вопрос задан 10.07.2023 в 08:03.
Предмет Информатика.
Спрашивает Афанасьев Гоша.
ПОМОГИТЕ! 1)Алгоритм вычисления значения функции F(n), где n – натуральное число, задан
следующими соотношениями: F(1) = 1 F(n) = F(n–1) * (n + 1), при n > 1 Чему равно значение функции F(5)? В ответе запишите только целое число. 2)Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln('*'); if n > 0 then begin F(n-2); F(n div 2); F(n div 2); end end; Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(5)? 3)Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln(n); if n < 5 then begin F(n+2); F(n+3); F(n*2) end end; Найдите сумму чисел, которые будут выведены при вызове F(1). 4.Ниже записана рекурсивная процедура: procedure F(n: integer); begin if n > 1 then begin F(n - 4); write(n); F(n div 2); end; end; Что будет напечатано на экране при выполнении вызова F(11)?

Ответы на вопрос

Отвечает Смирнов Евгений.
Ответ:
1) - 0 2) - 1 3) - 9 4) - 7
Объяснение:
2) 1, потому-что writeln('*') записано перед if, значит оно не изменяется при выполнении if
3) F(1+2); = 3
F(1+3); = 4
F(1*2) = 2
3 + 4 + 2 = 9
4) if n > 1 then begin
F(11 - 4); = 7
write(7);
F(n div 2);
end;
end;



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
- Для вычисления значения функции F(n) по заданным соотношениям, мы можем использовать рекурсивный подход:
sqlfunction F(n: integer): integer;
begin
if n = 1 then
Result := 1
else
Result := F(n - 1) * (n + 1);
end;
Вычислим значение F(5):
scssF(5) = F(4) * 6
F(4) = F(3) * 5
F(3) = F(2) * 4
F(2) = F(1) * 3 = 1 * 3 = 3
F(3) = 3 * 4 = 12
F(4) = 12 * 5 = 60
F(5) = 60 * 6 = 360
Ответ: 360.
- Давайте выполним алгоритм для F(5) и посчитаем количество символов "звездочка":
scssF(5) ->
* (F(3)) ->
* (F(1)) ->
* (base case, n = 1)
* (F(2)) ->
* (F(0)) ->
* (base case, n = 0)
* (base case, n = 1)
* (F(2)) ->
* (F(0)) ->
* (base case, n = 0)
* (base case, n = 1)
* (F(2)) ->
* (F(0)) ->
* (base case, n = 0)
* (base case, n = 1)
* (F(1)) ->
* (base case, n = 1)
В итоге, будет напечатано 12 символов "звездочка".
- Выполним алгоритм для F(1):
scssF(1) ->
1
F(3) ->
3
F(5) ->
5
F(7) ->
не выполняется (7 < 5)
F(8) ->
не выполняется (8 < 5)
F(10) ->
не выполняется (10 < 5)
F(8) ->
не выполняется (8 < 5)
F(9) ->
не выполняется (9 < 5)
F(10) ->
не выполняется (10 < 5)
F(4) ->
4
F(6) ->
не выполняется (6 < 5)
F(7) ->
не выполняется (7 < 5)
F(12) ->
не выполняется (12 < 5)
Сумма выведенных чисел: 1 + 3 + 5 = 9.
- Выполним алгоритм для F(11):
scssF(11) ->
F(7) ->
F(3) ->
F(-1) -> не выполняется (нельзя сделать вызов с отрицательным аргументом)
F(4) ->
F(0) -> не выполняется (нельзя сделать вызов с аргументом 0)
4
F(2) ->
F(-2) -> не выполняется (нельзя сделать вызов с отрицательным аргументом)
F(1) -> 1
4
F(5) ->
5
F(6) ->
6
F(3) ->
F(-1) -> не выполняется
F(4) ->
F(0) -> не выполняется
4
F(2) -> 1
6
11
F(5) -> 5
Итоговый вывод: 4 1 6 4 5 11 5.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili