Ebben a programban megtanulja megtalálni a szám faktoriálját a Java és a while ciklus használatával.
A példa megértéséhez ismernie kell a következő Java programozási témákat:
- Java a hurokhoz
 - Java közben és csináld … míg a hurok
 
Az n pozitív szám tényezőjét a következő adja meg:
n (n!) = 1 * 2 * 3 * 4 *… * n tényező
1. példa: Keresse meg a szám tényezőjét a ciklus használatával
 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); ) )
Kimenet
10-es tényező = 3628800
Ebben a programban azt használtuk, hogy a hurok az 1 és a megadott szám (10) közötti összes számot végigkíséri, és az egyes számok és számok szorzatát egy változó tényezőben tároljuk.
Az int helyett hosszú ideig használtuk a faktoriális nagy eredmények tárolását. Azonban még mindig nem elég nagy a nagyobb számok (mondjuk 100) értékének tárolásához.
A hosszú változóban nem tárolható eredményekhez BigIntegera java.mathkönyvtárban deklarált változót használjuk .
2. példa: Keresse meg a szám tényezőjét a BigInteger használatával
 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); ) )
Kimenet
30-as tényező = 265252859812191058636308480000000
Itt ahelyett long, hogy BigIntegerváltozó faktoriált használunk .
Mivel *nem használható együtt BigInteger, inkább multiply()a termékhez használjuk. Ezenkívül a számot be kell önteni BigIntegerszorzáshoz.
Hasonlóképpen használhatunk egy darab hurokot is a probléma megoldására.
3. példa: Keresse meg a szám faktorszámát a while ciklus használatával
 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); ) )
Kimenet
5-ös tényező = 120
A fenti programban, a for ciklussal ellentétben, meg kell növelnünk az i értékét a hurok testén belül.
Noha mindkét program technikailag helyes, ebben az esetben jobb a loop használatát használni. Ez azért van, mert az iteráció száma (upto num) ismert.
Látogasson el erre az oldalra, hogy megtanulja megtalálni a szám faktoriális számát rekurzióval.








