Inleiding tot Factorial in Java

In dit artikel zullen we leren over verschillende manieren om code te schrijven in Java Programming Language, ten behoeve van Factorial Calculations.

Als een van de eenvoudig te gebruiken, object-georiënteerde taal, Java, is Platform onafhankelijk en een eenvoudige programmeertaal. Java's Compiler en Interpreter zijn ontwikkeld met Beveiliging als belangrijk aspect. Java heeft verschillende toepassingsmogelijkheden.

Factorial, gesymboliseerd als "!" (Uitroepteken), is een wiskundige bewerking waarbij een getal wordt vermenigvuldigd met alle getallen die kleiner zijn. Als het getal bijvoorbeeld 5 is, is de uitvoer voor faculteit 5! = 5 * 4 * 3 * 2 * 1 = 120.

Hoe een Java-programma uit te voeren?

1. Vul uw code in en sla deze op als (bestandsnaam) .java

2. Open Terminal en voer de volgende Java-opdracht uit.

  • een. javac (bestandsnaam) .java

3. De bovenstaande opdracht genereert een klassenbestand.

4. Voer nu het klassenbestand uit.

  • een. java (bestandsnaam)

Berekening van factoren met behulp van verschillende methoden

Voorbeeld 1 - Factorieprogramma op Java met de basismethode

We gaan nu verder met het schrijven van een eenvoudig Java-programma voor Factorberekening.

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);
)
)

Sla de bovenstaande code op met elke bestandsnaam en .java-extensie.

Code Uitleg:

Begonnen met twee variabelen "i" en "feit", met waarde 1, vervolgens "getal" met 5, wat ons getal is om de faculteit te berekenen. Ging naar For Loop, bleef de waarde van i verhogen totdat we het overeenkwamen met nummer, dat wil zeggen 5. Terwijl de waarde toeneemt, wordt deze telkens vermenigvuldigd, vermenigvuldigd en krijgt feit een nieuwe waarde toegewezen.

Uitgang :

Voorbeeld 2 - Factorieprogramma in Java met gebruikersinvoer

Een andere veelgebruikte methode is waar we om een ​​gebruikersinvoernummer vragen, voor berekening in plaats van het vooraf te definiëren.

Raadpleeg de onderstaande code voor berekening op basis van gebruikersinvoer:

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);
)
)
)

Bewaar de bovenstaande code zoals we deden voor het eerdere voorbeeld.

Code Uitleg:

Het grote verschil tussen het eerdere en bovenstaande voorbeeld is de gebruikersinvoer, Rest is hetzelfde. De code vraagt ​​om een ​​getal dat moet worden berekend, en als het door de gebruiker ingevoerde getal Negatief is dat in "-" staat, wordt het bericht "Voer een getal groter dan 0:" in, wat duidelijk is omdat Factorial niet kan zijn berekend voor negatief nummer. Nu zal het een positief getal accepteren en doorgaan met Berekeningsfactor en vervolgens de uitvoer afdrukken zoals weergegeven in de onderstaande afbeelding.

Uitgang :

Voorbeeld 3 - Factorieprogramma op Java met behulp van de recursiemethode

Recursie is een van de handigste tools in de programmeerwereld. Recursie betekent in feite het hergebruiken van de functie. Dus we hoeven hier geen extra aantal variabelen te definiëren, wat betekent dat we slechts twee variabelen of minder hebben.

De belangrijkste reden om Recursion te implementeren is de mogelijkheid om de codelengte te verkorten en de tijdcomplexiteit van een programma elegant te verminderen. Recursiemethode, met zijn voordelen, heeft een paar nadelen, die op de lange termijn een grote impact kunnen hebben.

nadelen

Nadelen met recursie:

  • Kortom, het is vrij moeilijk om de recursiecode te debuggen en te traceren voor elke stap met een fout.
  • Anders dan dat, gebruikt recursie meer geheugen, omdat het Stack gebruikt om de taak te volbrengen, waarbij het de stack blijft optellen met een nieuwere recursieve aanroep.
  • En, indien niet verstandig geïmplementeerd, kan Recursion de functie vertragen.
  • StackOverflowException: recursieve methoden genereren vaak deze uitzondering vanwege het overmatig gebruik van de stack.

Raadpleeg de onderstaande 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));
)
)

Bewaar en compileer het programma zoals we eerder deden.

Code Uitleg:

Bovenstaande code begint met een enkele int-variabele, controleert of deze gelijk is aan 1, zo ja, dan wordt er één geretourneerd, aangezien faculteit voor 1 gelijk is aan 1. Indien niet gelijk aan 1, gaat het verder met de recursiefunctie. Onze int-waarde is bijvoorbeeld 5, dus het zal zijn zoals "5 * faculteit (5-1)", hier wordt voor de tweede keer faculteit genoemd, wat een andere oproep is. Vervolgens keert het weer terug met nieuwere int-waarde, die 4 is, "4 * faculteit (4-1)", nu is het de derde aanroep voor de recursiemethode. Nu is de nieuwere int-waarde 3, wat "3 * faculteit (3-1)" betekent, nu is het de vierde aanroep en de waarde is 2, wat betekent "2 * faculteit (2-1)". In de volgende recursieve aanroep is de waarde int één, waarmee de functie hier wordt beëindigd. Terwijl elke oproep werd gedaan, werd de waarde ervan opgeslagen in een Stack, wat een LIFO-methode is. Dus voor de laatste uitvoer is het resultaat: "5 * 4 * 3 * 2 * 1 = 120"

In vergelijking met andere methoden is recursie vrij moeilijk te begrijpen en te implementeren, maar als het goed wordt begrepen en verstandig wordt geïmplementeerd, is het een goed hulpmiddel.

Uitgang :

Het wordt ten zeerste aanbevolen om recursie te gebruiken, alleen in het geval dat het schrijven van een iteratieve code vrij complex kan zijn.

Nu we verschillende methoden hebben geleerd voor het implementeren van factorberekeningen in Java, laten we een ingebouwde functie verkennen die hetzelfde werk doet, op een enkele regel.

Voorbeeld 4 - Factorieprogramma op Java met ingebouwde functie

*) IntMath

Inzicht in de noodzaak van rekenkundige bewerkingen boven een waarde, een paar functies die specifiek zijn voor bepaalde waardetypen werden geschreven, we zullen de waarde van het type Geheel getal in het werk zien.

IntMath is een klasse voor rekenkundige berekeningen op een int-waarde. De klasse IntMath wordt geleverd met een reeks rekenkundige bewerkingen, inclusief faculteit.

Syntaxis :

factorial (int n)

Conclusie - Factorial in Java

We zijn begonnen met een inleiding tot Java en het uitvoeren van een Java-programma. Toen leerden we over Factorberekening en verschillende methoden, waaronder recursie, om dit te bereiken.

Tegen het einde leerden we over IntMath, een Java-functie, voornamelijk gericht op rekenkundige bewerkingen. Java is een veel gebruikte programmeertaal, het komt met veel functies, in dit artikel hebben we geleerd over factorberekeningen in Java, wat een klein aspect is.

Aanbevolen artikelen

Dit is een gids voor Factorial op Java. Hier bespreken we hoe het Java-programma samen met de bijbehorende methoden moet worden uitgevoerd. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Testkaders voor Java
  2. Thread Life cycle in Java
  3. Variabelen in Java
  4. Java-annotaties
  5. Arrays in Java Programming
  6. Factorie in C #