М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
alinakolesnikov
alinakolesnikov
12.04.2023 20:58 •  Информатика

36 с сайта к.ю.полякова дан рекурсивный алгоритм: procedure f(n: integer); begin writeln('*'); if n > 0 then begin writeln('*'); f(n-2); f(n div 2); end end; сколько символов "звездочка" будет напечатано на экране при выполнении вызова f(7)? как решать эту методом дерева? и вообще, возможно ли это?

👇
Ответ:
Jack123456789
Jack123456789
12.04.2023
Да это самый удобный и наглядный Рисуем дерево вызовов. Понимаем, что если функция вызвалась с числом <=0, то печатается одна звезда, затем на этой ветке рекурсия останавливается. Если же функция вызвалась с параметром > 0, То печатается 2 звезды и возникают новые две ветки рекурсивных вызовов. Прилагаю рисунок, красными точками отмечены звезды, печатающиеся при конкретном вызове функции. ответо будет являться общее количество таких точек. Важно понять, что при наличии идентичных веток можно посчитать результат для такой ветки один раз и использовать его для других таких же.

ответ: 31.
36 с сайта к.ю.полякова дан рекурсивный алгоритм: procedure f(n: integer); begin writeln('*'); if n
4,5(21 оценок)
Открыть все ответы
Ответ:

1.

var

  A: array [1..10] of integer;

  max, i: integer;

begin

    for i:=1 to 10 do                 // заполнение массива

        A[i] := random(100) - 50;

    max := -51;

    for i:=1 to 10 do                 // обработка массива

        if (A[i] < 0) and (A[i] > max) then

        max := A[i];

    writeln(max);

end.

2.

var

  A: array [1..1000] of integer;

  kol, i, N: integer;

begin

    readln(N);

    for i:=1 to N do                 // заполнение массива

        A[i] := random(100) - 50;

    for i:=1 to N do                 // обработка массива

        if A[i] mod 2 = 0 then

        inc(kol);

    writeln(kol);

end.

4,8(28 оценок)
Ответ:
nkochneva1
nkochneva1
12.04.2023

1.

var

  A: array [1..10] of integer;

  max, i: integer;

begin

    for i:=1 to 10 do                 // заполнение массива

        A[i] := random(100) - 50;

    max := -51;

    for i:=1 to 10 do                 // обработка массива

        if (A[i] < 0) and (A[i] > max) then

        max := A[i];

    writeln(max);

end.

2.

var

  A: array [1..1000] of integer;

  kol, i, N: integer;

begin

    readln(N);

    for i:=1 to N do                 // заполнение массива

        A[i] := random(100) - 50;

    for i:=1 to N do                 // обработка массива

        if A[i] mod 2 = 0 then

        inc(kol);

    writeln(kol);

end.

4,8(22 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ