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 BigInteger
a java.math
kö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 BigInteger
vá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 BigInteger
szorzá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.