Einführung in Factorial in Java

In diesem Artikel lernen wir verschiedene Methoden zum Schreiben von Code in der Programmiersprache Java zum Zweck von Fakultätsberechnungen kennen.

Als eine der benutzerfreundlichsten 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.

Factorial, symbolisiert als "!" (Ausrufezeichen), ist eine mathematische Operation zum Multiplizieren einer Zahl mit allen Zahlen, die kleiner als diese sind. Wenn zum Beispiel die Zahl 5 ist, ist die Ausgabe für 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 unter (Dateiname) .java

2. Öffnen Sie das Terminal und führen Sie den folgenden Java-Befehl aus.

  • ein. javac (Dateiname) .java

3. Der obige Befehl generiert eine Klassendatei.

4. Führen Sie nun die Klassendatei aus.

  • ein. Java (Dateiname)

Faktorielle Berechnung mit verschiedenen Methoden

Beispiel 1 - Factorial-Programm in Java mit der Basic-Methode

In Zukunft werden wir nun ein einfaches Java-Programm für die Fakultätsberechnung 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 der Erweiterung .java.

Code Erklärung:

Begonnen mit zwei Variablen "i" und "fact", mit dem Wert 1, dann "number" mit 5, was unsere Zahl zur Berechnung der Fakultät ist. Ging in die For-Schleife und erhöhte den Wert von i so lange, bis wir ihn mit der Zahl, dh 5, abgeglichen haben. Während des Inkrementierens wird jedes Mal, wenn sich der Wert von fact erhöht, multipliziert und fact ein neuer Wert zugewiesen.

Ausgabe :

Beispiel 2 - Factorial-Programm in Java mit Benutzereingabe

Eine andere häufig verwendete Methode besteht darin, eine Benutzereingabenummer zur Berechnung anzufordern, anstatt sie vorab zu definieren.

Informationen zur Benutzereingabeberechnung finden Sie im folgenden Code:

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:

Der Hauptunterschied zwischen dem vorherigen und dem obigen Beispiel ist die Benutzereingabe. Rest ist dieselbe. Der Code fragt nach einer zu berechnenden Zahl. Wenn die vom Benutzer eingegebene Zahl negativ ist und "-" minus "ist, wird" Bitte geben Sie eine Zahl größer als 0: "angezeigt, was offensichtlich ist, da Factorial nicht sein kann berechnet für negative Zahl. Jetzt akzeptiert es eine positive Zahl, fährt mit Calculating Factorial fort und druckt die Ausgabe wie in der folgenden Abbildung gezeigt.

Ausgabe :

Beispiel 3 - Faktorielles Programm in Java unter Verwendung der Rekursionsmethode

Rekursion ist eines der nützlichsten Werkzeuge in der Welt der Programmierung. Rekursion bedeutet grundsätzlich die Wiederverwendung der Funktion. Wir müssen hier also keine zusätzliche Anzahl von Variablen definieren, was bedeutet, dass wir nur zwei Variablen oder weniger haben.

Ein Hauptgrund für die Implementierung von Recursion ist die Möglichkeit, die Codelänge zu verringern und die zeitliche Komplexität eines Programms auf elegante Weise zu verringern. Die Rekursionsmethode mit ihren Vorteilen hat einige Nachteile, die sich langfristig erheblich auswirken können.

Nachteile

Nachteile bei der Rekursion:

  • Grundsätzlich ist es ziemlich schwierig, den Rekursionscode zu debuggen und für jeden fehlerhaften Schritt nachzuverfolgen.
  • Ansonsten verbraucht die Rekursion mehr Speicher, da sie die Aufgabe mit Stack erledigt und den Stack mit einem neueren rekursiven Aufruf aufaddiert.
  • Und wenn es nicht sinnvoll implementiert wird, kann Rekursion die Funktion verlangsamen.
  • StackOverflowException: Rekursive Methoden lösen diese Ausnahme häufig aus, weil der Stack überlastet ist.

Beachten Sie 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:

Der obige Code beginnt mit einer einzelnen int-Variablen, prüft, ob sie gleich 1 ist. Wenn ja, gibt er eine zurück, da die Fakultät für 1 1 ist. Wenn sie nicht gleich 1 ist, fährt er mit der Rekursionsfunktion fort. Unser int-Wert ist zum Beispiel 5, es ist also „5 * Fakultät (5-1)“, Fakultät wird hier zum zweiten Mal aufgerufen, was ein weiterer Aufruf ist. Dann kehrt es wieder mit einem neueren int-Wert zurück, der 4, "4 * Fakultät (4-1)" ist. Jetzt ist es der dritte Aufruf der Rekursionsmethode. Jetzt ist der neuere int-Wert 3, was "3 * Fakultät (3-1)" bedeutet, jetzt ist es der vierte Aufruf, und der Wert ist 2, was "2 * Fakultät (2-1)" bedeutet. Beim nächsten rekursiven Aufruf ist der int-Wert eins, wodurch die Funktion hier beendet wird. Während jedes Aufrufs wurde sein Wert in einem Stack gespeichert, bei dem es sich um eine LIFO-Methode handelt. Für die endgültige Ausgabe lautet das Ergebnis also "5 * 4 * 3 * 2 * 1 = 120".

Im Vergleich zu anderen Methoden ist Rekursion schwer zu verstehen und zu implementieren, aber wenn es gut verstanden und sinnvoll implementiert wird, ist es ein gutes Werkzeug.

Ausgabe :

Es wird dringend empfohlen, Rekursion nur für den Fall zu verwenden, dass das Schreiben eines iterativen Codes sehr komplex sein kann.

Nachdem wir nun verschiedene Methoden zum Implementieren von Fakultätsberechnungen in Java kennengelernt haben, wollen wir eine integrierte Funktion untersuchen, die dieselbe Arbeit in einer einzigen Zeile leistet.

Beispiel 4 - Factorial-Programm in Java mit integrierter Funktion

*) IntMath

Nachdem wir die Notwendigkeit für arithmetische Operationen über einen Wert verstanden haben und einige Funktionen speziell für bestimmte Werttypen geschrieben wurden, sehen wir, dass der Wert vom Typ Integer in Arbeit ist.

IntMath ist eine Klasse für arithmetische Berechnungen für einen int-Wert. Die IntMath-Klasse enthält eine Reihe von arithmetischen Operationen, einschließlich Fakultätsoperationen.

Syntax :

factorial (int n)

Fazit - Factorial auf Java

Wir begannen mit einer Einführung in Java und wie man ein Java-Programm ausführt. Dann lernten wir die faktorielle Berechnung und verschiedene Methoden, einschließlich der Rekursion, um dies zu erreichen.

Gegen Ende haben wir etwas über IntMath gelernt, eine Java-Funktion, die sich hauptsächlich auf arithmetische Operationen konzentriert. Java ist eine weit verbreitete Programmiersprache mit vielen Funktionen. In diesem Artikel haben wir etwas über Faktorielle Berechnungen in Java gelernt, was ein winziger Aspekt ist.

Empfohlene Artikel

Dies ist eine Anleitung zu Factorial in Java. Hier besprechen wir, wie Java-Programm zusammen mit seinen Methoden ausgeführt wird. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Testen von Frameworks für Java
  2. Thread-Lebenszyklus in Java
  3. Variablen in Java
  4. Java-Anmerkungen
  5. Arrays in der Java-Programmierung
  6. Fakultät in C #