Kotlin-programma om de faculteit van een nummer te vinden

In dit programma leer je de faculteit van een getal te vinden met behulp van de for en while-lus in Kotlin. U leert ook bereiken te gebruiken om dit probleem op te lossen.

De faculteit van een positief getal n wordt gegeven door:

 faculteit van n (n!) = 1 * 2 * 3 * 4 *… * n 

Voorbeeld 1: Vind de faculteit van een getal met de lus 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") )

Wanneer u het programma uitvoert, is de uitvoer:

 Factoriaal van 10 = 3628800

In dit programma hebben we for loop gebruikt om door alle getallen tussen 1 en het opgegeven getal num (10) te lopen, en het product van elk getal tot num wordt opgeslagen in een variabele faculteit.

In tegenstelling tot Java kunt u in Kotlin bereiken ( 1… num) en in operator gebruiken om door getallen tussen 1 en num te lopen.

We hebben ook long gebruikt in plaats van int om grote resultaten van faculteit op te slaan.

Het is echter nog steeds niet groot genoeg om de waarde van grotere getallen op te slaan (zeg 100). Voor resultaten die niet in een lange variabele kunnen worden opgeslagen, gebruiken we BigIntegerde in java.mathbibliotheek gedeclareerde variabele .

Hier is de equivalente Java-code: Java-programma om de faculteit van een nummer te vinden.

Voorbeeld 2: Vind de faculteit van een getal met 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") )

Wanneer u het programma uitvoert, is de uitvoer:

 Factorial van 30 = 20589113209464900000000000000000000000000000000

Hier gebruiken longwe in plaats van BigIntegervariabele faculteit.

Omdat we *niet kunnen worden gebruikt BigInteger, gebruiken we in plaats daarvan multiply()voor het product. Ook moet num worden gecast BigIntegervoor vermenigvuldiging.

Evenzo kunnen we ook een while-lus gebruiken om dit probleem op te lossen.

Voorbeeld 3: Vind de faculteit van een getal met de while-lus

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

Wanneer u het programma uitvoert, is de uitvoer:

 Factoriaal van 5 = 120

In het bovenstaande programma moeten we, in tegenstelling tot een for-lus, de waarde van i binnen de body van de lus verhogen.

Hoewel beide programma's technisch correct zijn, is het in dit geval beter om for loop te gebruiken. Het is omdat het aantal iteraties (tot aantal) bekend is.

Bezoek deze pagina om te leren om de faculteit van een getal te vinden met behulp van recursie.

Interessante artikelen...