Рекурсия в Kotlin
Рекурсия - это вызов функции из
самой себя. Выведем с помощью рекурсии
числа от 1 до 10. Каждый
вызов печатает текущее число и, пока оно
не больше 10, вызывает функцию
со следующим числом:
fun func(i: Int) {
println(i)
if (i < 10) {
func(i + 1)
}
}
fun main() {
func(1)
}
Без условия получится бесконечный вызов. Условие как раз и останавливает рекурсию: это базовый случай.
Так же находят сумму элементов списка.
Базовый случай - индекс дошел до конца
списка, тогда возвращают 0. Иначе
к текущему элементу прибавляют сумму
хвоста:
fun func(arr: List<Int>, i: Int = 0): Int {
if (i == arr.size) {
return 0
}
return arr[i] + func(arr, i + 1)
}
fun main() {
println(func(listOf(1, 2, 3))) // 6
}
Дан список:
val arr = listOf(1, 2, 3, 4, 5)
С помощью рекурсии выведите элементы этого списка в консоль.
Дан список:
val arr = listOf(1, 2, 3, 4, 5)
С помощью рекурсии найдите сумму элементов этого списка.