„Java“ programa faktoriaus skaičiui surasti

Šioje programoje išmoksite rasti skaičiaus faktorialą naudodami „Java“ ir „loop“.

Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:

  • „Java for Loop“
  • „Java“ ir daryk … o „Loop“

Teigiamo skaičiaus n faktorą pateikia:

 faktorius n (n!) = 1 * 2 * 3 * 4 *… * n 

1 pavyzdys: raskite skaičiaus faktorių naudodami ciklą

 public class Factorial ( public static void main(String() args) ( int num = 10; long factorial = 1; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial *= i; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Rezultatas

 Faktorinis koeficientas 10 = 3628800

Šioje programoje mes naudojome kilpą, kad galėtume sureguliuoti visus skaičius nuo 1 iki nurodyto skaičiaus num (10), o kiekvieno skaičiaus iki numerio sandauga yra saugoma kintamojoje faktorijoje.

Mes naudojome ilgai, o ne int, kad išsaugotume didelius faktorių rezultatus. Tačiau jis vis dar nėra pakankamai didelis, kad būtų galima išsaugoti didesnių skaičių (tarkime, 100) vertę.

Rezultatams, kurių negalima išsaugoti ilgame kintamajame, naudojame bibliotekoje BigIntegerdeklaruotą kintamąjį java.math.

2 pavyzdys: raskite skaičiaus faktorių naudodami „BigInteger“

 import java.math.BigInteger; public class Factorial ( public static void main(String() args) ( int num = 30; BigInteger factorial = BigInteger.ONE; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(i)); ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Rezultatas

 Faktorinis iš 30 = 265252859812191058636308480000000

Vietoj to long, mes naudojame BigIntegerkintamąjį faktorių.

Kadangi *negalima naudoti BigInteger, mes naudojame multiply()produktą. Be to, skaičius turi būti perduotas BigIntegerdauginti.

Taip pat mes galime naudoti tam tikrą laiką, kad išspręstume šią problemą.

3 pavyzdys: suraskite skaičiaus faktorių naudodami while loop

 public class Factorial ( public static void main(String() args) ( int num = 5, i = 1; long factorial = 1; while(i <= num) ( factorial *= i; i++; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Rezultatas

 Faktorinis koeficientas 5 = 120

Pirmiau pateiktoje programoje, skirtingai nei „for loop“, mes turime padidinti i reikšmę kilpos kūne.

Nors abi programos yra techniškai teisingos, šiuo atveju geriau naudoti ciklą. Taip yra todėl, kad yra žinomas iteracijų skaičius (iki skaičių).

Apsilankykite šiame puslapyje, kad išmoktumėte surasti faktoriaus skaičių naudodami rekursiją.

Įdomios straipsniai...