Programme Kotlin pour trouver la factorielle d'un nombre

Dans ce programme, vous apprendrez à trouver la factorielle d'un nombre en utilisant la boucle for et while dans Kotlin. Vous apprendrez également à utiliser des plages pour résoudre ce problème.

La factorielle d'un nombre positif n est donnée par:

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

Exemple 1: Trouver factorielle d'un nombre en utilisant la boucle 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") )

Lorsque vous exécutez le programme, la sortie sera:

 Factorielle de 10 = 3628800

Dans ce programme, nous avons utilisé for loop pour parcourir tous les nombres entre 1 et le nombre donné num (10), et le produit de chaque nombre jusqu'à num est stocké dans une variable factorielle.

Contrairement à Java, dans Kotlin, vous pouvez utiliser les plages ( 1… num) et l'opérateur in pour parcourir les nombres entre 1 et num.

De plus, nous avons utilisé long au lieu de int pour stocker de gros résultats factoriels.

Cependant, ce n'est toujours pas assez grand pour stocker la valeur de nombres plus grands (disons 100). Pour les résultats qui ne peuvent pas être stockés dans une variable longue, nous utilisons la BigIntegervariable déclarée dans la java.mathbibliothèque.

Voici le code Java équivalent: Java Program to Find Factorial of a Number.

Exemple 2: recherche factorielle d'un nombre à l'aide de 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") )

Lorsque vous exécutez le programme, la sortie sera:

 Factorielle de 30 = 205891132094649000000000000000000000000000000

Ici, au lieu de long, nous utilisons la BigIntegervariable factorielle.

Puisque, *ne peut pas être utilisé avec BigInteger, nous utilisons multiply()à la place pour le produit. En outre, num doit être converti en BigIntegerpour la multiplication.

De même, nous pouvons également utiliser une boucle while pour résoudre ce problème.

Exemple 3: Recherche factorielle d'un nombre en utilisant la boucle 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") )

Lorsque vous exécutez le programme, la sortie sera:

 Factorielle de 5 = 120

Dans le programme ci-dessus, contrairement à une boucle for, nous devons incrémenter la valeur de i à l'intérieur du corps de la boucle.

Bien que les deux programmes soient techniquement corrects, il est préférable d'utiliser la boucle for dans ce cas. C'est parce que le nombre d'itérations (jusqu'à num) est connu.

Visitez cette page pour apprendre à trouver la factorielle d'un nombre en utilisant la récursivité.

Articles intéressants...