Programma Java per trovare fattoriale di un numero

In questo programma imparerai a trovare il fattoriale di un numero usando il ciclo for e while in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Java per Loop
  • Java while e do … while Loop

Il fattoriale di un numero positivo n è dato da:

 fattoriale di n (n!) = 1 * 2 * 3 * 4 *… * n 

Esempio 1: trova fattoriale di un numero utilizzando il ciclo 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); ) )

Produzione

 Fattoriale di 10 = 3628800

In questo programma, abbiamo usato for loop per scorrere tutti i numeri compresi tra 1 e il numero dato num (10), e il prodotto di ogni numero fino a num viene memorizzato in un fattoriale variabile.

Abbiamo usato long invece di int per memorizzare grandi risultati di fattoriale. Tuttavia, non è ancora abbastanza grande per memorizzare il valore di numeri più grandi (diciamo 100).

Per i risultati che non possono essere memorizzati in una variabile lunga, utilizziamo la BigIntegervariabile dichiarata nella java.mathlibreria.

Esempio 2: trova fattoriale di un numero utilizzando 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); ) )

Produzione

 Fattoriale di 30 = 265252859812191058636308480000000

Qui, invece di long, usiamo la BigIntegervariabile fattoriale.

Poiché, *non può essere utilizzato con BigInteger, utilizziamo invece multiply()per il prodotto. Inoltre, dovrebbe essere eseguito il cast di num BigIntegerper la moltiplicazione.

Allo stesso modo, possiamo anche usare un ciclo while per risolvere questo problema.

Esempio 3: trova il fattoriale di un numero utilizzando il ciclo 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); ) )

Produzione

 Fattoriale di 5 = 120

Nel programma sopra, a differenza di un ciclo for, dobbiamo incrementare il valore di i all'interno del corpo del ciclo.

Sebbene entrambi i programmi siano tecnicamente corretti, in questo caso è meglio usare il ciclo for. È perché il numero di iterazioni (fino a num) è noto.

Visita questa pagina per imparare a trovare fattoriale di un numero usando la ricorsione.

Articoli interessanti...