Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
fun sumTo(n: Int): Int {
if (n == 0) return 0
return n + sumTo(n - 1)
}
fun main() {
println(sumTo(4))
}10
- Ждать
0: считать, чтоreturn 0в базовом случае завершает всё. Он отвечает толькоsumTo(0), а каждый ждущий вызов на обратном пути прибавляет своёn. - Ждать
24: принимать функцию за произведение чисел. Она складывает через+и на0возвращает0, поэтому результат —4 + 3 + 2 + 1 + 0.
- Что произойдёт, если убрать строку
if (n == 0) return 0? - Сколько вызовов
sumToждут одновременно, когда выполняетсяsumTo(0)?