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ésCommencez 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?:
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?:
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 tache, 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:
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Laravel prend en charge l'utilisation des requêtes SQL natives, mais la liaison des paramètres doit être préférée pour assurer la sécurité; 1. Utilisez DB :: SELECT () pour exécuter SELECT Queries avec la liaison des paramètres pour empêcher l'injection SQL; 2. Utilisez DB :: Update () pour effectuer des opérations de mise à jour et renvoyer le nombre de lignes affectées; 3. Utilisez db :: insert () pour insérer des données; 4. Utilisez DB :: Delete () pour supprimer les données; 5. Utilisez DB :: Instruction () pour exécuter des instructions SQL sans ensembles de résultats tels que Create, Alter, etc.; 6. Il est recommandé d'utiliser Whereraw, Selectraw et d'autres méthodes dans QueryBuilder pour combiner les expressions natives pour améliorer la sécurité

Utilisez JUnit5 et Mockito pour isoler efficacement les dépendances pour les tests unitaires. 1. Créez un objet simulé via @Mock, @InjectMocks Inject L'instance testée, @ExtendWith Activer la Mockito Extension; 2. Utiliser quand (). ThereraTurn () pour définir le comportement de simulation, vérifiez () pour vérifier le nombre d'appels et de paramètres de méthode; 3. Peut simuler les scénarios d'exception et vérifier la gestion des erreurs; 4. Recommander l'injection du constructeur, éviter une sur-simulation et maintenir l'atomicité des tests; 5. Utiliser Asssertall () pour fusionner les affirmations, et @nest organise les scénarios de test pour améliorer la maintenabilité et la fiabilité des tests.

Les génériques GO sont pris en charge depuis 1.18 et sont utilisés pour écrire du code générique pour le type de type. 1. La fonction générique imprimslice [tany] (s [] t) peut imprimer des tranches de tout type, telles que [] int ou [] cha?ne. 2. Grace au nombre de contraintes de type, les limites des types numériques tels que int et float, sum [tnumber] (tranche [] t) t La sommation s?re est réalisée. 3. La bo?te de type générique de structure [tany] struct {Valuet} peut encapsuler n'importe quelle valeur de type et être utilisée avec le constructeur newbox [tany] (VT) * Box [t]. 4. Ajouter SET (VT) et Get () T Méthodes T à boxer [t] sans

Table-Layout: Fixe obligera la largeur de la colonne de table à déterminer par la largeur de la cellule de la première ligne pour éviter le contenu affectant la disposition. 1. Définissez la table de table: fixe et spécifiez la largeur du tableau; 2. Définissez le rapport de largeur de colonne spécifique pour la première ligne th / td; 3. Utilisez White-Space: Nowrap, débordement: Hidden et Text-Overflow: EllipSis pour contr?ler le débordement du texte; 4. Applicable à la gestion des antécédents, aux rapports de données et à d'autres scénarios qui nécessitent une disposition stable et un rendu haute performance, qui peuvent effectivement empêcher la gigue de mise en page et améliorer l'efficacité du rendu.

JSON.loads () est utilisé pour analyser les cha?nes JSON dans les structures de données Python. 1. L'entrée doit être une cha?ne enveloppée de devis doubles et la valeur booléenne est vraie / fausse; 2. Prend en charge la conversion automatique de Null → Aucun, objet → Dict, Array → List, etc.; 3. Il est souvent utilisé pour traiter les cha?nes JSON renvoyées par l'API. Par exemple, Response_String peut être directement accessible après l'analyse par JSON.loads (). Lorsque vous l'utilisez, vous devez vous assurer que le format JSON est correct, sinon une exception sera lancée.

ChooseTheAPPROPROPPROPTROPEDEXTYPEBASTASEDUSECASE, telassinglefield, Compound, Multikey, Text, Geospatial, OrttLindexes.2.ApplyTheesrrulewHencreatingCompoundIndexesByOrderFieldsaseQuality, Sorture, Therange.3

Maven est un outil standard pour la gestion et la construction de projet Java. La réponse réside dans le fait qu'il utilise pom.xml pour normaliser la structure du projet, la gestion des dépendances, l'automatisation du cycle de vie de la construction et les extensions de plug-in; 1. Utilisez pom.xml pour définir GroupID, Arfactive, version et dépendances; 2. Commandes Master Core telles que MvnClean, compiler, tester, package, installer et déploier; 3. Utiliser la fonction de dépendance et les exclusions pour gérer les versions et les conflits de dépendance; 4. Organisez de grandes applications via la structure du projet multi-modules et sont gérées uniformément par le POM parent; 5

Dans Python, le transfert d'argument de la fonction est "passer la référence d'objet", c'est-à-dire 1. Pour les objets mutables (tels que les listes et les dictionnaires), les modifications in situ (telles que l'APPEND, la tranche d'affectation) dans la fonction affecteront directement l'objet d'origine; 2. Pour les objets immuables (tels que les entiers, les cha?nes), l'objet d'origine ne peut pas être modifié dans la fonction et la réaffectation ne créera qu'un nouvel objet; 3. Les paramètres transmettent une copie de la référence. Si la variable est rebelle dans la fonction (comme LST = [...]), la connexion avec l'objet d'origine ne sera pas affectée et la variable externe ne sera pas affectée. Par conséquent, la modification des objets mutables affecte les données d'origine, tandis que les objets immuables et la réaffectation ne le font pas, ce qui explique pourquoi la liste est visible à l'extérieur après modification dans la fonction, tandis que les changements entiers ne sont que localement.
