Programme Java 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 en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

  • Java pour Loop
  • Java pendant et faire… en boucle

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

 public class Factorial ( public static void main(String() args) ( int num = 10; long factorial = 1; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial *= i; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Production

 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.

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.

Exemple 2: recherche factorielle d'un nombre à l'aide de BigInteger

 import java.math.BigInteger; public class Factorial ( public static void main(String() args) ( int num = 30; BigInteger factorial = BigInteger.ONE; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(i)); ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Production

 Factorielle de 30 = 265252859812191058636308480000000

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

 public class Factorial ( public static void main(String() args) ( int num = 5, i = 1; long factorial = 1; while(i <= num) ( factorial *= i; i++; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Production

 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...