Johdatus Factorialiin Java

Tässä artikkelissa opitaan erilaisista tavoista kirjoittaa koodi Java-ohjelmointikielellä tekijälaskelmia varten.

Yksi helppokäyttöisistä oliokeskeisistä kielistä, Java, on alustasta riippumaton ja yksinkertainen ohjelmointikieli. Java-kääntäjä ja tulkki kehitettiin turvallisuuden ollessa tärkeä näkökohta. Java: lla on useita erilaisia ​​sovelluksia.

Faktoriaalinen, jota merkitään ”!” (Huutomerkki), on matemaattinen toimenpide, jolla kerrotaan numero kaikilla sitä pienemmillä numeroilla. Esimerkiksi, jos luku on 5, tehtailähtö on 5! = 5 * 4 * 3 * 2 * 1 = 120.

Kuinka suorittaa Java-ohjelma?

1. Täytä koodi ja tallenna se nimellä (tiedostonimi) .java

2. Avaa Pääte ja suorita seuraava Java-komento.

  • a. javac (tiedostonimi) .java

3. Yllä oleva komento luo luokkatiedoston.

4. Suorita nyt luokkatiedosto.

  • a. java (tiedostonimi)

Faktoriarvon laskeminen eri menetelmillä

Esimerkki 1 - Java-tekijäohjelma perusmenetelmää käyttämällä

Eteenpäin kirjoitamme nyt yksinkertaisen Java-ohjelman tekijälaskelmaan.

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

Tallenna yllä oleva koodi kaikilla tiedostonimillä ja .java-tunnisteilla.

Koodin selitys:

Aloitettiin kahdella muuttujalla “i” ja “tosiasia”, arvolla 1, sitten “määrällä” 5: llä, joka on lukumme kertoimen laskemiseksi. Lähti For Loop -peliin, kasvatti i: n arvoa, kunnes sovitimme sen numeroon, ts. 5. Inkrementoinnin aikana joka kerta tosiasian arvo kasvaa, se kerrotaan ja tosiasialle annetaan uusi arvo.

Tulos :

Esimerkki 2 - Java-tekijäohjelma käyttäjän syötteen avulla

Toinen yleisesti käytetty menetelmä on silloin, kun pyydämme käyttäjän syöttämää numeroa laskentaan sen ennalta määrittelemisen sijasta.

Katso alla olevasta koodista käyttäjän syöttöpohjainen laskenta:

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

Tallenna yllä oleva koodi samoin kuin aikaisemmassa esimerkissä.

Koodin selitys:

Suuri ero aikaisemman ja yllä olevan esimerkin välillä on käyttäjän syöttämä tieto, lepo on sama. Koodi pyytää numeron laskemista, niin jos käyttäjän syöttämä numero on negatiivinen, joka on merkinnässä “-”, miinus, se kysyy ”Ole hyvä ja kirjoita luku, joka on suurempi kuin 0:”, mikä on ilmeistä, koska Factorial ei voi olla laskettu negatiiviselle luvulle. Nyt se hyväksyy positiivisen luvun ja jatkaa Laskeva tekijä -kohdassa ja tulostaa sitten tulosteen alla olevan kuvan osoittamalla tavalla.

Tulos :

Esimerkki 3 - Faktoriaaliohjelma Java-ohjelmassa käyttäen rekursiomenetelmää

Rekursio on yksi hyödyllisimmistä työkaluista ohjelmoinnin maailmassa. Rekursio tarkoittaa periaatteessa funktion uudelleenkäyttöä. Joten sanoa, että meidän ei tarvitse määritellä ylimääräistä muuttujaa täällä, mikä tarkoittaa, että meillä on vain kaksi muuttujaa tai vähemmän.

Tärkein syy rekursion toteuttamiseen on kyky pienentää koodin pituutta ja tyylikkäästi vähentää ohjelman ajan monimutkaisuutta. Rekursiointimenetelmällä ja sen eduilla on muutamia haittoja, joilla voi olla suuri vaikutus pitkällä tähtäimellä.

haitat

Haitat rekursiolla:

  • Pohjimmiltaan on melko vaikeaa korjata rekursiokoodi ja jäljittää se mihin tahansa vaiheeseen, jossa on virhe.
  • Paitsi, että rekursio kuluttaa enemmän muistia, koska se käyttää pinoa tehtävän suorittamiseen, jossa se lisää pinoa uudella rekursiivisella puhelulla.
  • Ja jos sitä ei toteuteta viisaasti, rekursio voi hidastaa toimintoa.
  • StackOverflowException: Rekursiiviset menetelmät heittävät tämän poikkeuksen usein pinoa liikaa käyttäneen.

Katso alla olevaa koodia:

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

Tallenna ja käännä ohjelma kuten aiemmin.

Koodin selitys:

Yllä oleva koodi alkaa yhdellä int-muuttujalla, tarkistaa, onko se yhtä kuin 1, jos kyllä, niin se palauttaa yhden, koska tekijä 1: lle on 1. Jos ei ole yhtä kuin 1, se jatkaa rekursiofunktiolla. Int-arvo, esimerkiksi, on 5, joten se on kuin “5 * factorial (5-1)”, factorialia kutsutaan täällä toista kertaa, mikä on toinen puhelu. Sitten se palaa uudelleen uudella int-arvolla, joka on 4, ”4 * factorial (4-1)”, nyt se on kolmas kutsu rekursiomenetelmään. Nyt uudempi int-arvo on 3, mikä tarkoittaa ”3 * factorial (3-1)”, nyt se on neljäs kutsu ja arvo on 2, mikä tarkoittaa “2 * factorial (2-1)”. Seuraavassa rekursiivisessa puhelussa int-arvo on yksi, joka lopettaa toiminnon tässä. Jokaisen puhelun aikana sen arvo tallennettiin pinoon, joka on LIFO-menetelmä. Joten lopulliselle tuotokselle tulos on ”5 * 4 * 3 * 2 * 1 = 120”

Verrattuna muihin menetelmiin, Rekursiota on melko vaikea ymmärtää ja toteuttaa, mutta jos se ymmärretään hyvin ja toteutetaan viisaasti, se on hyvä työkalu.

Tulos :

On suositeltavaa käyttää rekursiota vain, jos iteratiivisen koodin kirjoittaminen voi olla melko monimutkaista.

Nyt kun olemme oppineet erilaisia ​​menetelmiä tekijälaskelmien toteuttamiseksi Javassa, tutkitaan sisäänrakennettua toimintoa, joka suorittaa saman työn yhdellä rivillä.

Esimerkki 4 - Java-tekijäohjelma sisäänrakennetun toiminnon avulla

*) IntMath

Ymmärtääksesi aritmeettisten operaatioiden tarpeen arvolla, kirjoitettiin muutama tietyille arvotyypeille ominainen funktio, näemme kokonaislukutyypin arvon työssä.

IntMath on luokka int-arvon aritmeettisiin laskelmiin. IntMath-luokan mukana tulee joukko aritmeettisia toimintoja, mukaan lukien tekijä.

Syntaksi :

factorial (int n)

Johtopäätös - Factorial Java

Aloitimme johdannolla javalle ja kuinka java-ohjelma suoritetaan. Sitten opimme tekijälaskelmasta ja erilaisista menetelmistä, mukaan lukien rekursio, sen suorittamiseksi.

Loppupuolella opimme IntMathista, Java-toiminnosta, joka keskittyi pääasiassa aritmeettisiin toimintoihin. Java on laajalti käytetty ohjelmointikieli, siinä on monia ominaisuuksia. Tässä artikkelissa opimme Java-tekijälaskelmista, mikä on pieni näkökohta.

Suositellut artikkelit

Tämä on opas Factorialiin Java-sovelluksessa. Tässä keskustellaan kuinka Java-ohjelma toteutetaan sen menetelmien kanssa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. Testaa Java-kehyksiä
  2. Langan elinkaari Java-versiossa
  3. Muuttujat Java
  4. Java-merkinnät
  5. Ryhmät Java-ohjelmoinnissa
  6. Factorial C #: ssä