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 BigInteger
variable déclarée dans la java.math
bibliothè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 BigInteger
variable factorielle.
Puisque, *
ne peut pas être utilisé avec BigInteger
, nous utilisons multiply()
à la place pour le produit. En outre, num doit être converti en BigInteger
pour 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é.