Kotlin-programmet för att hitta faktorn för ett nummer

I det här programmet lär du dig att hitta ett faktum för ett nummer med hjälp av för och under loop i Kotlin. Du lär dig också att använda intervall för att lösa detta problem.

Faktorn för ett positivt tal n ges av:

 fabrik av n (n!) = 1 * 2 * 3 * 4 * … * n 

Exempel 1: Hitta faktorn för ett tal med hjälp av for loop

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

När du kör programmet blir resultatet:

 Faktor av 10 = 3628800

I det här programmet har vi använt för loop för att slinga igenom alla nummer mellan 1 och det angivna numret num (10), och produkten av varje nummer till num lagras i en variabel faktoria.

Till skillnad från Java kan du i Kotlin använda intervall ( 1… num) och i operatör för att slinga igenom siffror mellan 1 och num.

Vi har också använt långa istället för int för att lagra stora resultat av faktoria.

Det är dock fortfarande inte tillräckligt stort för att lagra värdet på större nummer (säg 100). För resultat som inte kan lagras i en lång variabel använder vi BigIntegervariabel som deklareras i java.mathbiblioteket.

Här är motsvarande Java-kod: Java-program för att hitta faktorn för ett nummer.

Exempel 2: Hitta faktorn för ett nummer med 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") )

När du kör programmet blir resultatet:

 Faktor 30 = 2058911320946490000000000000000000000000000000000

Här, istället för long, använder vi BigIntegervariabelt faktoria.

Eftersom, *inte kan användas med BigInteger, använder vi istället multiply()för produkten. Dessutom ska num kastas till BigIntegerför multiplikation.

På samma sätt kan vi också använda en stundslinga för att lösa detta problem.

Exempel 3: Hitta faktorn för ett tal med hjälp av en loop

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

När du kör programmet blir resultatet:

 Faktor 5 = 120

I ovanstående program, till skillnad från en for-loop, måste vi öka värdet på i inuti loopens kropp.

Även om båda programmen är tekniskt korrekta är det bättre att använda för loop i det här fallet. Det beror på att antalet iteration (upp till num) är känt.

Besök den här sidan för att lära dig att hitta ett faktum för ett nummer med rekursion.

Intressanta artiklar...