Menu
Coddy logo textTech

Funciones recursivas

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 44 de 63.

Una función recursiva se llama a sí misma con un subproblema más pequeño. Un caso base devuelve el resultado sin realizar otra llamada recursiva. Para un total de cuenta regresiva, cero es el caso base y n - 1 se acerca a él. La recursión ordinaria utiliza espacio de la pila de llamadas, así que mantén pequeña la profundidad de entrada.

fun countdownSum(n: Int): Int {
    if (n == 0) return 0
    return n + countdownSum(n - 1)
}

Dentro de main:

println(countdownSum(4))

Las llamadas suman cuatro, tres, dos y uno, después se detienen en cero.

La recursión necesita un caso base alcanzable y un progreso hacia él.

challenge icon

Desafío

Intermedio

Completa recursiveSum con el parámetro number: Int. Mediante recursión, devuelve la suma desde 1 hasta number. number está entre 0 y 100. El resultado para cero es cero.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, tal como se describe.

Devuelve un valor de tipo Int. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con su cantidad de entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas utilizan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun recursiveSum(number: Int): Int {
    // Escribe tu solución aquí.
    return 0
}
fun main() {
    val number = readln().toInt()
    println(recursiveSum(number))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin