Programa de Kotlin para encontrar factorial de un número

En este programa, aprenderá a encontrar el factorial de un número usando el bucle for y while en Kotlin. También aprenderá a usar rangos para resolver este problema.

El factorial de un número positivo n viene dado por:

 factorial de n (n!) = 1 * 2 * 3 * 4 *… * n 

Ejemplo 1: Encuentra factorial de un número usando el bucle for

 fun main(args: Array) ( val num = 10 var factorial: Long = 1 for (i in 1… num) ( // factorial = factorial * i; factorial *= i.toLong() ) println("Factorial of $num = $factorial") )

Cuando ejecute el programa, la salida será:

 Factorial de 10 = 3628800

En este programa, hemos utilizado el ciclo for para recorrer todos los números entre 1 y el número dado num (10), y el producto de cada número hasta que num se almacena en un factorial variable.

A diferencia de Java, en Kotlin, puede usar rangos ( 1… num) y en el operador para recorrer los números entre 1 y num.

Además, hemos usado long en lugar de int para almacenar grandes resultados de factorial.

Sin embargo, todavía no es lo suficientemente grande para almacenar el valor de números más grandes (digamos 100). Para los resultados que no se pueden almacenar en una variable larga, usamos la BigIntegervariable declarada en la java.mathbiblioteca.

Aquí está el código Java equivalente: Programa Java para encontrar factorial de un número.

Ejemplo 2: Encuentra factorial de un número usando BigInteger

 import java.math.BigInteger fun main(args: Array) ( val num = 30 var factorial = BigInteger.ONE for (i in 1… num) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(num.toLong())) ) println("Factorial of $num = $factorial") )

Cuando ejecute el programa, la salida será:

 Factorial de 30 = 205891132094649000000000000000000000000000000

Aquí, en lugar de long, usamos la BigIntegervariable factorial.

Dado que, *no se puede usar con BigInteger, en su lugar usamos multiply()para el producto. Además, num se debe convertir en BigIntegerpara la multiplicación.

Asimismo, también podemos usar un bucle while para resolver este problema.

Ejemplo 3: Encuentra factorial de un número usando el bucle while

 fun main(args: Array) ( val num = 5 var i = 1 var factorial: Long = 1 while (i <= num) ( factorial *= i.toLong() i++ ) println("Factorial of $num = $factorial") )

Cuando ejecute el programa, la salida será:

 Factorial de 5 = 120

En el programa anterior, a diferencia de un ciclo for, tenemos que incrementar el valor de i dentro del cuerpo del ciclo.

Aunque ambos programas son técnicamente correctos, es mejor usar for loop en este caso. Es porque se conoce el número de iteraciones (hasta num).

Visite esta página para aprender a encontrar factorial de un número usando la recursividad.

Articulos interesantes...