Introduktion till Factorial i Java

I den här artikeln kommer vi att lära oss om olika sätt att skriva kod på Java-programmeringsspråk för faktorns beräkningar.

Att vara ett av det lättanvända, objektorienterade språket, Java, är plattformsoberoende och ett enkelt programmeringsspråk. Javas kompilator och tolk utvecklades med säkerhet som en viktig aspekt. Java har olika applikationer.

Factorial, symboliserat som "!" (Utropstecken), är en matematisk operation för att multiplicera ett nummer med alla siffror som är mindre än det. Till exempel, om antalet är 5, kommer utgången för fakultet att vara 5! = 5 * 4 * 3 * 2 * 1 = 120.

Hur kör man ett Java-program?

1. Fyll i din kod och spara den som (filnamn) .java

2. Öppna terminal och kör följande java-kommando.

  • a. javac (filnamn) .java

3. Ovanstående kommando genererar en klassfil.

4. Kör nu klassfilen.

  • a. java (filnamn)

Beräkning av Factorial med olika metoder

Exempel 1 - Factorial-program i Java med hjälp av basmetoden

När vi går framåt skriver vi nu ett enkelt Java-program för faktorberäkning.

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

Spara ovanstående kod med filnamn och .java-förlängning.

Kodförklaring:

Började med två variabler "i" och "faktum", med värde 1, sedan "nummer" med 5, vilket är vårt antal för att beräkna faktoriet. Gick in i For Loop, fortsatte att öka värdet på i tills vi matchade det med antalet, dvs 5. Samtidigt som faktumvärde ökar, varje gång faktumvärde ökar, multipliceras det och faktum tilldelas ett nytt värde.

Utgång :

Exempel 2 - Factorial-program i Java med användarinmatning

En annan vanlig metod är där vi ber om ett användarinmatningsnummer för beräkning istället för att fördefiniera det.

Se koden nedan för beräkning av användarinmatning:

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

Spara koden ovan som vi gjorde för det tidigare exemplet.

Kodförklaring:

Den stora skillnaden mellan det tidigare och ovan exemplet är användarinmatningen, resten är densamma. Koden kommer att begära att ett nummer ska beräknas, och sedan det nummer som användaren har matat in är negativt som är i "-", minus, kommer det att fråga "Vänligen ange ett nummer större än 0:", vilket är uppenbart eftersom Factorial inte kan vara beräknat för negativt antal. Nu kommer det att acceptera ett positivt tal och fortsätta med Beräkna Factorial och sedan skriva ut utdata som visas i bilden nedan.

Utgång :

Exempel 3 - Factorial-program i Java med hjälp av rekursionsmetod

Rekursion är ett av de mest användbara verktygen i programmeringsvärlden. Rekursion innebär i princip återanvändning av funktionen. Så att säga, vi behöver inte definiera ett extra antal variabler här, vilket innebär att vi bara har två variabler eller mindre.

Den viktigaste anledningen till att genomföra Rekursion är kraften att minska kodlängden och på ett elegant sätt minska ett programkomplexitet. Rekursionsmetoden, med dess fördelar, har några nackdelar som kan ha stor inverkan på lång sikt.

nackdelar

Nackdelar med rekursion:

  • I grund och botten är det ganska svårt att felsöka rekursionskoden och spåra den för något steg med ett fel.
  • I övrigt använder rekursion mer minne, eftersom det använder Stack för att utföra uppgiften, där det fortsätter att lägga till stacken med ett nyare rekursivt samtal.
  • Och om det inte genomförs klokt kan rekursion bromsa funktionen.
  • StackOverflowException: Rekursiva metoder kastar ofta detta undantag på grund av överanvändning av stack.

Se koden nedan:

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

Spara och kompilera programmet som vi gjorde tidigare.

Kodförklaring:

Ovanstående kod startar med en enda int-variabel, kontrollerar om den är lika med 1, om ja, så returnerar den en, eftersom faktoriell för 1 är 1. Om inte lika med 1 fortsätter den med rekursionsfunktion. Vårt int-värde är till exempel 5, så det kommer att vara som "5 * factorial (5-1)", factorial kallas här för andra gången, vilket är ett annat samtal. Sedan återvänder det igen med nyare int-värde, som är 4, “4 * factorial (4-1)”, nu blir det det tredje samtalet till rekursionsmetoden. Nu är nyare int-värde 3, vilket betyder "3 * factorial (3-1)", nu kommer det att vara det fjärde samtalet, och värdet blir 2, vilket betyder "2 * factorial (2-1)". I nästa rekursiva samtal är int-värdet ett, vilket avslutar funktionen här. Medan varje samtal ringdes sparades dess värde i en stack, som är en LIFO-metod. Så för den slutliga utgången blir resultatet "5 * 4 * 3 * 2 * 1 = 120"

Jämfört med andra metoder är rekursion ganska svår att förstå och genomföra, men om den förstås väl och genomförs klokt är det ett bra verktyg.

Utgång :

Det rekommenderas starkt att använda rekursion, bara i fall där det kan vara ganska komplicerat att skriva en iterativ kod.

Nu när vi har lärt oss olika metoder för att implementera Factorial Beräkningar i Java, Låt oss utforska en inbyggd funktion som gör samma arbete, på en enda rad.

Exempel 4 - Factorial-program i Java med inbyggd funktion

*) IntMath

Förstå behovet av aritmetiska operationer över ett värde, några funktioner specifika för vissa värdetyper skrivs, vi kommer att se heltalstypvärdet i arbete.

IntMath är en klass för aritmetiska beräkningar på ett int-värde. IntMath-klassen har en rad aritmetiska operationer, inklusive factorial.

Syntax :

factorial (int n)

Slutsats - Factorial i Java

Vi började med en introduktion till java och hur man kör ett java-program. Sedan lärde vi oss om Factorial Beräkning och olika metoder, inklusive rekursion, för att uppnå det.

Mot slutet lärde vi oss IntMath, en Java-funktion, främst fokuserad på aritmetiska operationer. Java är ett vanligt använt programmeringsspråk, det kommer med många funktioner, i den här artikeln lärde vi oss om Factorial Beräkningar i Java, som är en liten aspekt.

Rekommenderade artiklar

Detta är en guide till Factorial i Java. Här diskuterar vi hur man kör java-program tillsammans med dess metoder. Du kan också titta på följande artiklar för att lära dig mer-

  1. Testa ramverk för Java
  2. Tråd livscykel i Java
  3. Variabler i Java
  4. Java-kommentarer
  5. Arrays i Java-programmering
  6. Factorial i C #

Kategori: