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 BigInteger
variabile dichiarata nella java.math
libreria.
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 BigInteger
variabile fattoriale.
Poiché, *
non può essere utilizzato con BigInteger
, utilizziamo invece multiply()
per il prodotto. Inoltre, dovrebbe essere eseguito il cast di num BigInteger
per 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.