In diesem Artikel lernen wir verschiedene M?glichkeiten kennen, Code in der Programmiersprache Java für Faktorialberechnungen zu schreiben. Als eine der benutzerfreundlichen, objektorientierten Sprachen ist Java plattformunabh?ngig und eine einfache Programmiersprache. Javas Compiler und Interpreter wurden unter dem Gesichtspunkt der Sicherheit entwickelt. Java hat verschiedene Anwendungsbereiche.
WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Fakult?t, symbolisiert als ?!“ (Ausrufezeichen) ist eine mathematische Operation zum Multiplizieren einer Zahl mit allen kleineren Zahlen. Wenn die Zahl beispielsweise 5 ist, betr?gt die Ausgabe für die Fakult?t 5! = 5*4*3*2*1 = 120.
Wie führe ich ein Java-Programm aus?
1. Vervollst?ndigen Sie Ihren Code und speichern Sie ihn als (Dateiname).java
2. ?ffnen Sie Terminal und führen Sie den folgenden Java-Befehl aus.
- a. javac (Dateiname).java
3. Der obige Befehl generiert eine Klassendatei.
4. Führen Sie nun die Klassendatei aus.
- a. Java (Dateiname)
Beispiele für die faktorielle Verwendung verschiedener Methoden
Unten sind die verschiedenen Beispiele mit verschiedenen Methoden:
Beispiel 1 – Verwendung der Basismethode
In Zukunft werden wir nun ein einfaches Java-Programm für die Faktorialrechnung schreiben.
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); } }
Speichern Sie den obigen Code mit einem beliebigen Dateinamen und einer beliebigen .java-Erweiterung.
Code-Erkl?rung:
Es begann mit zwei Variablen, ?i“ und ?fact“, mit dem Wert 1, dann ?number“ mit 5, unserer Zahl zur Berechnung der Fakult?t. Ich bin in die For-Schleife gegangen und habe den Wert von i weiter erh?ht, bis wir ihn mit einer Zahl abgeglichen haben, z. B. 5. W?hrend der Inkrementierung wird jedes Mal, wenn der Wert der Tatsache zunimmt, dieser multipliziert, und der Tatsache wird ein neuer Wert zugewiesen.
Ausgabe:
Beispiel 2 – Verwendung von Benutzereingaben
Eine andere h?ufig verwendete Methode besteht darin, dass wir für die Berechnung nach einer vom Benutzer eingegebenen Zahl fragen, anstatt sie vorab zu definieren.
Beziehen Sie sich auf den folgenden Code für die auf Benutzereingaben basierende Berechnung:
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); } } }
Speichern Sie den obigen Code wie im vorherigen Beispiel.
Code-Erkl?rung:
Ein wesentlicher Unterschied zwischen dem früheren und dem obigen Beispiel ist die Benutzereingabe; Ruhe ist das Gleiche. Der Code fordert die Berechnung einer Zahl an. Wenn die vom Benutzer eingegebene Zahl dann negativ ist, d berechnet für negative Zahl. Jetzt wird eine positive Zahl akzeptiert und mit der Berechnung der Fakult?t fortgefahren. Anschlie?end wird die Ausgabe wie im Bild unten gezeigt gedruckt.
Ausgabe:
Beispiel 3 – Verwendung der Rekursionsmethode
Rekursion ist eines der nützlichsten Werkzeuge in der Welt der Programmierung. Rekursion bedeutet im Grunde die Wiederverwendung der Funktion. Sozusagen müssen wir hier keine zus?tzliche Anzahl von Variablen definieren, was bedeutet, dass wir nur zwei oder weniger Variablen haben.
Ein Hauptgrund für die Implementierung der Rekursion ist die M?glichkeit, die Codel?nge zu reduzieren und die zeitliche Komplexit?t eines Programms elegant zu reduzieren. Die Rekursionsmethode hat mit ihren Vorteilen einige Nachteile, die auf lange Sicht gro?e Auswirkungen haben k?nnten.
Nachteile
Nachteile der Rekursion:
- Grunds?tzlich ist es ziemlich schwierig, den Rekursionscode zu debuggen und ihn auf jeden Schritt mit einem Fehler zurückzuführen.
- Darüber hinaus ben?tigt die Rekursion mehr Speicher, da sie den Stapel zum Ausführen der Aufgabe verwendet und den Stapel mit einem neueren rekursiven Aufruf st?ndig addiert.
- Und wenn Rekursion nicht mit Bedacht implementiert wird, kann sie die Funktion verlangsamen.
- StackOverflowException: Rekursive Methoden l?sen diese Ausnahme h?ufig aufgrund der überbeanspruchung des Stapels aus.
Beziehen Sie sich auf den folgenden Code:
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)); } }
Speichern und kompilieren Sie das Programm wie zuvor.
Code-Erkl?rung:
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.
Das obige ist der detaillierte Inhalt vonFakult?t in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Laravel unterstützt die Verwendung nativer SQL -Abfragen, aber die Parameterbindung sollte bevorzugt werden, um die Sicherheit zu gew?hrleisten. 1. Verwenden Sie db :: select (), um Auswahlabfragen mit Parameterbindung auszuführen, um die SQL -Injektion zu verhindern. 2. Verwenden Sie db :: update (), um Aktualisierungsvorg?nge durchzuführen und die Anzahl der betroffenen Zeilen zurückzugeben. 3.. Verwenden Sie db :: Insert (), um Daten einzufinden. 4. Verwenden Sie db :: delete (), um Daten zu l?schen; 5. Verwenden Sie db :: Anweisung (), um SQL -Anweisungen ohne Ergebniss?tze wie Erstellen, Alter usw. auszuführen; 6. Es wird empfohlen, in QueryBuilder in der Lage zu verwenden, native Ausdrücke zur Verbesserung der Sicherheit zu kombinieren, um die Sicherheit zu verbessern

Verwenden Sie JUNIT5 und Mockito, um Abh?ngigkeiten für Unit -Tests effektiv zu isolieren. 1. Erstellen Sie ein Mock -Objekt über @mock, @InjectMocks injizieren die getestete Instanz, @extendWith erm?glicht die Mockito -Erweiterung. 2. verwenden Sie, wenn (). Thatreturn (), um das Simulationsverhalten zu definieren, verifizieren (), um die Anzahl der Methodenaufrufe und Parameter zu überprüfen. 3. kann die Ausnahmszenarien simulieren und die Fehlerbehandlung überprüfen; 4.. Konstruktorinjektion empfehlen, übersimulierung vermeiden und die Testeratomizit?t beibehalten. 5. Verwenden Sie Assertall (), um Behauptungen zusammenzuführen, und @Nested organisiert die Testszenarien, um die Wartbarkeit und Zuverl?ssigkeit der Tests zu verbessern.

Go Generics werden seit 1.18 unterstützt und zum Schreiben von generischen Code für Typ-Safe verwendet. 1. Die generische Funktion printslice [tany] (s [] t) kann Scheiben jeglicher Art drucken, z. B. [] int oder [] String. 2. Durch die Typenbeschr?nkungsnummer begrenzt t auf numerische Typen wie int und float, summe [tNumber] (Slice [] t) T Safe Summation wird realisiert. 3. Die generische Struktur -TypBox [tany] struct {valuet} kann jeden Typwert in Einklang bringen und mit dem NewBox [Tany] (VT)*Box [t] Constructor verwendet werden. 4. Set (vt) hinzufügen und () t () t zum Boxen [t] ohne boxen

TABLE-LAYOUT: Behoben erzwingt die Tabellenspaltenbreite, die durch die Zellbreite der ersten Zeile bestimmt wird, um den Inhalt zu vermeiden, der das Layout beeinflusst. 1. Set Table-Layout: Behoben und geben Sie die Tabellenbreite an; 2. Setzen Sie das spezifische Verh?ltnis der Spaltenbreite für die erste Zeile th/td; 3. Verwenden Sie den wei?en Raum: Nowrap, überlauf: versteckt und textüberfluss: Ellipsis zum Steuerung des Textüberlaufs; 4. Für Hintergrundverwaltung, Datenberichte und andere Szenarien, die ein stabiles Layout und eine Hochleistungsrendern erfordern, die das Layout-Jitter effektiv verhindern und die Renderneffizienz verbessern k?nnen.

JSON.Loads () wird verwendet, um JSON -Zeichenfolgen in Python -Datenstrukturen zu analysieren. 1. Die Eingabe muss eine in doppelte Zitate eingewickelte Zeichenfolge sein und der boolesche Wert ist wahr/falsch. 2. unterstützt die automatische Konvertierung von Null → Keine, Objekt → DICT, Array → Liste usw.; 3. Es wird oft verwendet, um JSON -Zeichenfolgen zu verarbeiten, die von der API zurückgegeben werden. Auf Response_String kann beispielsweise nach der Parsen von JSON.Loads () direkt zugegriffen werden. Bei der Verwendung müssen Sie sicherstellen, dass das JSON -Format korrekt ist, andernfalls wird eine Ausnahme ausgel?st.

ChoosetheApprotedeIntexTe -basedonusecase, SuchAssinglefield, Compound, Multikey, Text, Geospatial, orttlindexes.2.ApplyTheesrRuewhencreatedCompoundIndexesByorderingfieldsasequalit?t, Sorte

Maven ist ein Standardwerkzeug für Java -Projektmanagement und -aufbau. Die Antwort liegt in der Tatsache, dass Pom.xml verwendet wird, um Projektstruktur, Abh?ngigkeitsmanagement, Konstruktionslebenszyklusautomation und Plug-in-Erweiterungen zu standardisieren. 1. Verwenden Sie POM.xml, um Gruppen, Artefaktid, Version und Abh?ngigkeiten zu definieren; 2. Master -Kernbefehle wie MVNClean, Compile, Test, Paket, Installation und Bereitstellen; Fn. V. 5.

In Python ist die übertragung von Funktionsargumenten "Objektreferenz", dh für ver?nderliche Objekte (wie Listen und W?rterbücher), in-situ-Modifikationen (z. B. Anhang, Zuweisungsscheibe) innerhalb der Funktion wirkt sich direkt auf das ursprüngliche Objekt aus. 2. Für unver?nderliche Objekte (wie Ganzzahlen, Zeichenfolgen) kann das ursprüngliche Objekt in der Funktion nicht ge?ndert werden, und die Neuzuweisung erzeugt nur ein neues Objekt. 3. Die Parameter passieren eine Kopie der Referenz. Wenn die Variable in der Funktion (z. B. LST = [...]) wiederhergestellt wird, wird die Verbindung mit dem ursprünglichen Objekt nicht beeinflusst und die externe Variable nicht betroffen. Das ?ndern ver?nderlicher Objekte wirkt sich daher auf die ursprünglichen Daten aus, w?hrend unver?nderliche Objekte und Neuzuweisungen dies nicht tun, was erkl?rt, warum die Liste nach der Modifikation innerhalb der Funktion extern sichtbar ist, w?hrend die Zahlung von Ganzzahl nur lokal sind.
