Š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 BigInteger
deklaruotą 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 BigInteger
kintamąjį faktorių.
Kadangi *
negalima naudoti BigInteger
, mes naudojame multiply()
produktą. Be to, skaičius turi būti perduotas BigInteger
dauginti.
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ą.