Program Java pentru a găsi factorul unui număr

În acest program, veți învăța să găsiți factorialul unui număr folosind bucla for și while în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Java pentru buclă
  • Java while și do … while Buclă

Factorialul unui număr pozitiv n este dat de:

 factorial de n (n!) = 1 * 2 * 3 * 4 * … * n 

Exemplul 1: Găsiți factorul unui număr folosind bucla for

 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); ) )

Ieșire

 Factorial de 10 = 3628800

În acest program, am folosit pentru buclă pentru a parcurge toate numerele cuprinse între 1 și numărul dat (10), iar produsul fiecărui număr până la num este stocat într-un factorial variabil.

Am folosit mult timp în loc de int pentru a stoca rezultate mari ale factorialului. Cu toate acestea, încă nu este suficient de mare pentru a stoca valoarea unui număr mai mare (să zicem 100).

Pentru rezultatele care nu pot fi stocate într-o variabilă lungă, folosim BigIntegervariabila declarată în java.mathbibliotecă.

Exemplul 2: Găsiți factorul unui număr folosind 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); ) )

Ieșire

 Factorial de 30 = 265252859812191058636308480000000

Aici, în loc de long, folosim BigIntegerfactorial variabil.

Deoarece, *nu poate fi utilizat cu BigInteger, în schimb, îl folosim multiply()pentru produs. De asemenea, num ar trebui aruncat BigIntegerpentru multiplicare.

La fel, putem folosi și o buclă while pentru a rezolva această problemă.

Exemplul 3: Găsiți factorul unui număr folosind bucla while

 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); ) )

Ieșire

 Factorial de 5 = 120

În programul de mai sus, spre deosebire de bucla for, trebuie să creștem valoarea lui în corpul buclei.

Deși ambele programe sunt corecte din punct de vedere tehnic, este mai bine să folosiți bucla în acest caz. Acest lucru se datorează faptului că numărul iterației (până la num) este cunoscut.

Accesați această pagină pentru a afla cum să găsiți factorialul unui număr folosind recursivitatea.

Articole interesante...