Java program a szám tényezőjének megkeresésére

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.

érdekes cikkek...