Давайте разберем, как работает данная функция, и найдем значение, которое она вернет при n = 9.
Функция имеет следующий вид:
int functionName(int n) {
if (n <= 1) return 1 + 3;
else return n + functionName(n - 1);
}
Теперь давайте рассмотрим, как функция будет выполняться для n = 9.
- Сначала вызывается functionName(9).
- Проверяем условие: 9 <= 1 - это ложное, поэтому выполняется ветвь else.
- Вычисляем: 9 + functionName(8).
- Теперь вызывается functionName(8).
- Проверяем условие: 8 <= 1 - это тоже ложное.
- Вычисляем: 8 + functionName(7).
- Теперь вызывается functionName(7).
- Проверяем условие: 7 <= 1 - это ложное.
- Вычисляем: 7 + functionName(6).
- Теперь вызывается functionName(6).
- Проверяем условие: 6 <= 1 - это ложное.
- Вычисляем: 6 + functionName(5).
- Теперь вызывается functionName(5).
- Проверяем условие: 5 <= 1 - это ложное.
- Вычисляем: 5 + functionName(4).
- Теперь вызывается functionName(4).
- Проверяем условие: 4 <= 1 - это ложное.
- Вычисляем: 4 + functionName(3).
- Теперь вызывается functionName(3).
- Проверяем условие: 3 <= 1 - это ложное.
- Вычисляем: 3 + functionName(2).
- Теперь вызывается functionName(2).
- Проверяем условие: 2 <= 1 - это ложное.
- Вычисляем: 2 + functionName(1).
- Теперь вызывается functionName(1).
- Проверяем условие: 1 <= 1 - это истинное.
- Возвращаем: 1 + 3 = 4.
Теперь, когда мы знаем, что functionName(1) возвращает 4, можем подставить это значение обратно:
- functionName(2) = 2 + functionName(1) = 2 + 4 = 6
- functionName(3) = 3 + functionName(2) = 3 + 6 = 9
- functionName(4) = 4 + functionName(3) = 4 + 9 = 13
- functionName(5) = 5 + functionName(4) = 5 + 13 = 18
- functionName(6) = 6 + functionName(5) = 6 + 18 = 24
- functionName(7) = 7 + functionName(6) = 7 + 24 = 31
- functionName(8) = 8 + functionName(7) = 8 + 31 = 39
- functionName(9) = 9 + functionName(8) = 9 + 39 = 48
Таким образом, итоговое значение, которое вернет функция при n = 9, равно 48.