Можете объяснить подробно как это делать?

Чему равна сумма чисел, которые напечатает программа при вызове функции f(10)?
Программа представлена Python и Pascal

Leraleralera151515 Leraleralera151515    3   05.04.2020 23:54    1

Ответы
ksyutitova2017p0bhz4 ksyutitova2017p0bhz4  12.10.2020 16:11

Cумма равна 35.

Процедура печатает число, если в неё передается n, большее единицы, и при этом сначала срабатывают две процедуры, вложенные в неё.

Передаётся число 10. Оно больше 1. Начинается процедура от числа 7. Оно больше 1. Начинается процедура от числа 4. Оно больше 1. Начинается процедура от числа 1. Оно не больше 1.

Возвращаемся к числу 4. Начинается f(4 div 2), то есть процедура от числа 2. Оно больше 1. Начинается процедура от числа -1. Оно меньше 1. Начинается процедура от 2 div 2, т.е от 1. Число не больше 1. Обе процедуры для двойки выполнены. Печатается 2.

Обе процедуры для числа 4 тоже выполнены. Печатается 4.

Возвращаемся к числу 7. Выполняется вторая процедура для 7, то есть f(3). Обе её процедуры ничего не печатают. Тогда она сама печатает 3.

Обе процедуры для числа 7 выполнены. Печатается 7.

Теперь к самому первому числу 10. Начинается вторая его процедура, то есть от числа 5. Начинается первая процедура от 5, то есть f(2). Обе процедуры для числа 2 ничего не делают, печатается 2. Вторая процедура от 5 тоже 2. Аналогично печатается 2.

Обе процедуры числа 5 выполнены. Печатается 5.

Обе процедуры числа 10 выполнены. Печатается 10.

Ура! осталось посчитать сумму напечатанного.

2+4+3+7+2+2+5+10=35

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика