Recursión de Kotlin

En este tutorial aprenderemos la función recursiva de Kotlin. Al igual que otros lenguajes de programación, podemos usar la recursividad en Kotlin.
Una función que se llama a sí misma se llama función recursiva y este proceso de repetición se llama recursión .

Cada vez que se llama a una función, hay dos posibilidades:

  1. Llamada de función normal
  2. Llamada de función recursiva

Llamada de función normal

Cuando se llama a una función desde main()un bloque, se llama una llamada de función normal. En el siguiente ejemplo, sum()se llama a la vez y ejecuta su instrucción y termina con la devolución de la suma del número. Si queremos ejecutar la función nuevamente, debemos llamar sum()desde el bloque principal una vez más.

Llamar a la función sum() desde el bloque main() –

Llamada de función recursiva

Cuando una función se llama a sí misma, se llama llamada de función recursiva. Cada función recursiva debe tener una condición de finalización, de lo contrario, las ejecuciones del programa entran en un bucle infinito y dan como resultado un error de desbordamiento de pila.

Llamar a la función callMe() desde su propio bloque –

Aquí, hemos utilizado la condición de terminación; de lo if( a > 0)contrario, ingresa al ciclo infinito. E imprime el valor de 5 a 0.

Ejemplo 1: Encuentra el factorial de un número sin usar la condición de terminación

// Kotlin program of factorial using recursion
fun Fact(num: Int):Long{
    return  num*Fact(num-1)  // no terminate condition
}    
//main method
fun main() {
    println("Factorial of 5 is: "+Fact(5))
//Recursive call
}

Producción:

Exception in thread "main" java.lang.StackOverflowError

Ejemplo 2: Encuentra el factorial de un número usando la condición de terminación.

// Kotlin program of factorial using recursion
fun Fact(num: Int):Long{
    return if(num==1) num.toLong()        // terminate condition
    else num*Fact(num-1)
}
//main method
fun main() {
    println("Factorial of 5 is: "+Fact(5))
//Recursive call
}

Producción:

Factorial of 5 is: 120

Funcionamiento del programa factorial –

La llamada recursiva de Fact() se explica paso a paso en la siguiente figura:-

Ejemplo 3: encuentre la suma de los elementos de una array usando la recursividad

        // two parameters passed an array and size of array
fun sum(args: Array<Int> , index:Int ):Int{    
    return if(index<=0) 0
    else (sum(args ,index-1) + args[index-1])      // recursive function call
}
  
fun main() {
    // array initialization
    val array = arrayOf(1,2,3,4,5,6,7,8,9,10)  
    // size of array
    val n = array.size 
    val result = sum(array,n)             // normal function call
    println("The sum of array elements is: $result")
}

Producción:

The sum of array elements is: 55

Explicación:
aquí hemos inicializado una array y la hemos pasado como argumento a la función sum(). En cada llamada recursiva, el valor del índice disminuye en uno. Si el índice es igual a cero o menor que entonces termínelo y devuelva la suma de todos los elementos.

Publicación traducida automáticamente

Artículo escrito por Aditya_patel y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *