Programma Kotlin per trovare fattoriale di un numero

In questo programma imparerai a trovare il fattoriale di un numero usando il ciclo for e while in Kotlin. Imparerai anche a usare gli intervalli per risolvere questo problema.

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

 fun main(args: Array) ( val num = 10 var factorial: Long = 1 for (i in 1… num) ( // factorial = factorial * i; factorial *= i.toLong() ) println("Factorial of $num = $factorial") )

Quando esegui il programma, l'output sarà:

 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.

A differenza di Java, in Kotlin è possibile utilizzare intervalli ( 1… num) e in operator per scorrere i numeri compresi tra 1 e num.

Inoltre, 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.

Ecco il codice Java equivalente: Programma Java per trovare fattoriale di un numero.

Esempio 2: trova fattoriale di un numero utilizzando BigInteger

 import java.math.BigInteger fun main(args: Array) ( val num = 30 var factorial = BigInteger.ONE for (i in 1… num) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(num.toLong())) ) println("Factorial of $num = $factorial") )

Quando esegui il programma, l'output sarà:

 Fattoriale di 30 = 205891132094649000000000000000000000000000000

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

 fun main(args: Array) ( val num = 5 var i = 1 var factorial: Long = 1 while (i <= num) ( factorial *= i.toLong() i++ ) println("Factorial of $num = $factorial") )

Quando esegui il programma, l'output sarà:

 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...