Introduction à Factorial en Java

Dans cet article, nous découvrirons les différentes manières d'écrire du code en langage de programmation Java, aux fins des calculs factoriels.

Étant l'un des langages orientés objet faciles à utiliser, Java est indépendant de la plate-forme et un langage de programmation simple. Le compilateur et l'interpréteur Java ont été développés avec la sécurité comme aspect majeur. Java a diverses applications.

Factorielle, symbolisée par «!» (Point d'exclamation), est une opération mathématique de multiplication d'un nombre avec tous les nombres qui sont plus petits que lui. Par exemple, si le nombre est 5, la sortie pour factorielle sera 5! = 5 * 4 * 3 * 2 * 1 = 120.

Comment exécuter un programme Java?

1. Complétez votre code et enregistrez-le sous (nom de fichier) .java

2. Ouvrez Terminal et exécutez la commande java suivante.

  • une. javac (nom de fichier) .java

3. La commande ci-dessus va générer un fichier de classe.

4. Exécutez maintenant le fichier de classe.

  • une. java (nom de fichier)

Calcul factoriel à l'aide de diverses méthodes

Exemple 1 - Programme factoriel en Java utilisant la méthode de base

À l'avenir, nous allons maintenant écrire un simple programme Java pour le calcul factoriel.

public class Factorial
(
public static void main(String args())
(int i, fact=1;
int number=5;
for(i=1;i<=number;i++)
(
fact=fact*i;
)
System.out.println("Factorial of "+number+" is: "+fact);
)
)

Enregistrez le code ci-dessus avec n'importe quel nom de fichier et extension .java.

Explication du code:

Commencé avec deux variables «i» et «fait», avec la valeur 1, puis «nombre» avec 5, qui est notre nombre pour calculer la factorielle. Entré dans la boucle For, continuait à augmenter la valeur de i jusqu'à ce que nous le comparions avec le nombre, c'est-à-dire 5. Pendant l'incrémentation, chaque fois que la valeur du fait augmente, il est multiplié et une nouvelle valeur est attribuée au fait.

Sortie :

Exemple 2 - Programme factoriel en Java utilisant l'entrée utilisateur

Une autre méthode couramment utilisée consiste à demander un numéro d'entrée utilisateur, pour le calcul au lieu de le prédéfinir.

Reportez-vous au code ci-dessous pour le calcul basé sur les entrées utilisateur:

import java.util.Scanner;
class Facto(
public static void main(String args()) (
int q, a, fact = 1;
System.out.println("Please Enter a number:");
Scanner in = new Scanner(System.in);
q = in.nextInt();
if ( q < 0 )
System.out.println("Please enter a number greater than 0:");
else (
for ( a = 1 ; a <= q ; a++ )
fact = fact*a;
System.out.println("Factorial of "+q+" is = "+fact);
)
)
)

Enregistrez le code ci-dessus comme nous l'avons fait pour l'exemple précédent.

Explication du code:

La différence majeure entre l'exemple précédent et ci-dessus est l'entrée utilisateur, le reste est le même. Le code demandera un nombre à calculer, puis si le nombre entré par l'utilisateur est négatif qui est en «-», moins, il demandera «Veuillez entrer un nombre supérieur à 0:», ce qui est évident car Factorial ne peut pas être calculé pour le nombre négatif. Maintenant, il acceptera un nombre positif et procédera au calcul factoriel, puis imprimera la sortie comme indiqué dans l'image ci-dessous.

Sortie :

Exemple 3 - Programme factoriel en Java utilisant la méthode de récursivité

La récursivité est l'un des outils les plus utiles dans le monde de la programmation. La récursivité signifie essentiellement la réutilisation de la fonction. Donc, pour dire, nous n'aurons pas à définir un nombre supplémentaire de variables ici, ce qui signifie que nous n'aurons que deux variables ou moins.

La raison principale pour implémenter la récursivité est le pouvoir de réduire la longueur du code et de réduire élégamment la complexité temporelle d'un programme. La méthode de récursivité, avec ses avantages, présente quelques inconvénients, qui pourraient avoir un impact majeur à long terme.

Désavantages

Inconvénients de la récursivité:

  • Fondamentalement, il est assez difficile de déboguer le code de récursivité et de le suivre pour toute étape avec une erreur.
  • En dehors de cela, la récursivité utilise plus de mémoire, car elle utilise Stack pour accomplir la tâche, où elle continue d'ajouter la pile avec un appel récursif plus récent.
  • Et, si elle n'est pas implémentée judicieusement, la récursivité peut ralentir la fonction.
  • StackOverflowException: les méthodes récursives lèvent souvent cette exception en raison de la surutilisation de la pile.

Référez-vous au code ci-dessous:

public class FactorialExample2 (
static int factorial(int n)(
if (n == 1)
return 1;
else
return(n * factorial(n-1));
)
public static void main(String() args) (
System.out.println("Factorial of 5 is: "+factorial(5));
)
)

Enregistrez et compilez le programme comme nous l'avons fait précédemment.

Explication du code:

Le code ci-dessus commence par une seule variable int, vérifie s'il est égal à 1, si oui, il en retourne un, car factoriel pour 1 est 1. S'il n'est pas égal à 1, il continue avec la fonction de récursivité. Notre valeur int, par exemple, est 5, donc ce sera comme «5 * factorielle (5-1)», factorielle est appelée ici pour la deuxième fois, ce qui est un autre appel. Ensuite, il revient à nouveau avec une valeur int plus récente, qui est 4, «4 * factorielle (4-1)», maintenant ce sera le troisième appel à la méthode de récursivité. Maintenant, la nouvelle valeur int est 3, ce qui signifie «3 * factorielle (3-1)», maintenant ce sera le quatrième appel, et la valeur sera 2, ce qui signifie «2 * factorielle (2-1)». Dans le prochain appel récursif, la valeur int sera un, ce qui terminera la fonction ici. Pendant chaque appel, sa valeur a été enregistrée dans une pile, qui est une méthode LIFO. Ainsi, pour la sortie finale, le résultat sera «5 * 4 * 3 * 2 * 1 = 120»

Par rapport à d'autres méthodes, la récursivité est assez difficile à comprendre et à mettre en œuvre, mais si elle est bien comprise et mise en œuvre judicieusement, c'est un bon outil.

Sortie :

Il est fortement recommandé d'utiliser la récursivité, uniquement dans le cas où l'écriture d'un code itératif peut être assez complexe.

Maintenant que nous avons appris différentes méthodes pour implémenter les calculs factoriels en Java, Explorons une fonction intégrée qui fait le même travail, sur une seule ligne.

Exemple 4 - Programme factoriel en Java utilisant la fonction intégrée

*) IntMath

Comprenant la nécessité d'opérations arithmétiques sur une valeur, quelques fonctions spécifiques à certains types de valeur ont été écrites, nous verrons la valeur de type Integer en action.

IntMath est une classe pour les calculs arithmétiques sur une valeur int. La classe IntMath est fournie avec une gamme d'opérations arithmétiques, y compris factorielles.

Syntaxe :

factorial (int n)

Conclusion - Factorial à Java

Nous avons commencé par une introduction à java et comment exécuter un programme java. Ensuite, nous avons appris le calcul factoriel et diverses méthodes, y compris la récursivité, pour l'accomplir.

Vers la fin, nous avons découvert IntMath, une fonction Java, principalement axée sur les opérations arithmétiques. Java est un langage de programmation largement utilisé, il est livré avec de nombreuses fonctionnalités, dans cet article, nous avons appris les calculs factoriels en Java, qui est un aspect minuscule.

Articles recommandés

Ceci est un guide de Factorial à Java. Nous discutons ici comment exécuter un programme java avec ses méthodes. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. Test de frameworks pour Java
  2. Cycle de vie des threads en Java
  3. Variables en Java
  4. Annotations Java
  5. Tableaux en programmation Java
  6. Factorielle en C #