Maison  >  Article  >  Java  >  Factorielle en Java

Factorielle en Java

王林
王林original
2024-08-30 16:25:37852parcourir

Dans cet article, nous découvrirons différentes manières d'écrire du code dans le langage de programmation Java à des fins de calculs factoriels. Étant l’un des langages orientés objet faciles à utiliser, Java est indépendant de la plate-forme et constitue 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 gammes d'applications.

PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Factorial, symbolisé par « ! » (point d'exclamation), est une opération mathématique consistant à multiplier un nombre par tous les nombres plus petits. Par exemple, si le nombre est 5, le résultat de la 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 le terminal et exécutez la commande Java suivante.

  • a. javac (nom de fichier).java

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

4. Maintenant, exécutez le fichier de classe.

  • a. java (nom de fichier)

Exemples de factorielle utilisant diverses méthodes

Vous trouverez ci-dessous les différents exemples utilisant diverses méthodes :

Exemple 1 – Utilisation de 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 :

Cela a commencé avec deux variables, « i » et « fact », avec une valeur de 1, puis « nombre » avec 5, qui est notre nombre pour calculer la factorielle. Je suis entré dans For Loop, j'ai continué à augmenter la valeur de i jusqu'à ce que nous lui attribuions un nombre, c'est-à-dire 5. Lors de l'incrémentation, chaque fois que la valeur du fait augmente, elle est multipliée et le fait se voit attribuer une nouvelle valeur.

Sortie :

Factorielle en Java

Exemple 2 – Utilisation de la saisie utilisateur

Une autre méthode couramment utilisée consiste à demander à l'utilisateur un nombre saisi pour le calcul au lieu de le prédéfinir.

Référez-vous au code ci-dessous pour le calcul basé sur les entrées de l'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 :

Une différence majeure entre l'exemple précédent et l'exemple ci-dessus réside dans la saisie de l'utilisateur ; Le repos est pareil. Le code demandera qu'un nombre soit calculé, puis si le nombre saisi par l'utilisateur est négatif et est entre "-", moins, il demandera "Veuillez entrer un nombre supérieur à 0 :", ce qui est évident car Factorial ne peut pas être calculé. calculé pour un nombre négatif. Maintenant, il acceptera un nombre positif et procédera au calcul factoriel, puis imprimera le résultat comme indiqué dans l'image ci-dessous.

Sortie :

Factorielle en Java

Exemple 3 – Utilisation de la méthode de récursion

La récursion 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. Pour ainsi dire, nous n’aurons pas besoin de définir un nombre supplémentaire de variables ici, ce qui signifie que nous n’aurons que deux variables ou moins.

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

Inconvénients

Inconvénients de la récursivité :

  • Fondamentalement, il est assez difficile de déboguer le code de récursion et de le retracer pour toute étape comportant une erreur.
  • En dehors de cela, la récursion utilise plus de mémoire, car elle utilise Stack pour accomplir la tâche, où elle continue d'ajouter la pile avec un nouvel appel récursif.
  • Et, si elle n'est pas implémentée judicieusement, la récursion 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 :

The above code starts with a single int variable and checks if it is equal to 1; if yes, it returns one, as factorial for 1 is 1. If not equal to 1, it proceeds with the recursion function. Our int value, for example, is 5, so it’ll be like “5 * factorial(5-1)”, factorial is called here for the second time, which is another call. Then it returns again with a newer int value, which is 4, “4 * factorial(4-1)”, now it’ll be the third call to the recursion method. Now, the newer int value is 3, which means “3 * factorial(3-1)”, now it’ll be the fourth call, and the value will be 2, which means “2 * factorial(2-1)”. The int value will be one in the next recursive call, which will terminate the function here. While every call was made, its value was saved in a Stack, which is a LIFO method. So, for the final Output, the result will be “5*4*3*2*1 = 120.”

Compared to other methods, Recursion is quite difficult to understand and to implement, but if understood well and implemented wisely, it is a good tool.

Output:

Factorielle en Java

It is highly recommended to use Recursion only in the case where writing an iterative code can be quite complex.

Now that we have learned various methods for implementing Factorial Calculations in Java Let’s explore a Built-in function that does the same work in a single line.

Example 4 – Using built-in Function

*) IntMath

Understanding the need for arithmetic operations over a value, a few functions specific to certain value types were written, we will see the Integer type value in work.

IntMath is a class for arithmetic calculations on an int value. IntMath class comes with a range of arithmetic operations, including factorial.

Syntax:

factorial (int n)

Conclusion – Factorial in Java

We started with an introduction to java and how to run a java program. Then we learned about Factorial Calculation and various methods, including Recursion, to accomplish it.

Towards the end, we learned about IntMath; a Java Function primarily focused on Arithmetic operations. Java is a widely-used programming language; it comes with many features; in this article, we learned about Factorial Calculations in Java, which is a tiny aspect.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Modèles de nombres en JavaArticle suivant:Modèles de nombres en Java