Kotlin-program til at finde faktor for et nummer

I dette program lærer du at finde det faktuelle af et nummer ved hjælp af for og while-loop i Kotlin. Du lærer også at bruge intervaller til at løse dette problem.

Faktoriet for et positivt tal n er givet ved:

 faktor af n (n!) = 1 * 2 * 3 * 4 * … * n 

Eksempel 1: Find faktor for et tal ved hjælp af 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ører programmet, vil output være:

 Faktor af 10 = 3628800

I dette program har vi brugt til loop til loop gennem alle tal mellem 1 og det givne nummer num (10), og produktet af hvert nummer indtil num er gemt i en variabel faktor.

I modsætning til Java kan du i Kotlin bruge intervaller ( 1… num) og i operator til at løbe gennem tal mellem 1 og num.

Vi har også brugt længe i stedet for int til at gemme store resultater af faktoriel.

Det er dog stadig ikke stort nok til at gemme værdien af ​​større tal (for eksempel 100). For resultater, der ikke kan lagres i en lang variabel, bruger vi BigIntegervariablen, der er deklareret i java.mathbiblioteket.

Her er den ækvivalente Java-kode: Java-program til at finde faktor for et nummer.

Eksempel 2: Find faktor for et nummer ved hjælp af 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ører programmet, vil output være:

 Faktor for 30 = 2058911320946490000000000000000000000000000000000

Her i stedet for longbruger vi BigIntegervariabel faktor.

Da det *ikke kan bruges med BigInteger, bruger vi i stedet multiply()til produktet. Også num skal kastes til BigIntegerfor multiplikation.

På samme måde kan vi også bruge en while-løkke til at løse dette problem.

Eksempel 3: Find faktor for et tal ved hjælp af mens 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ører programmet, vil output være:

 Faktor af 5 = 120

I det ovenstående program skal vi, i modsætning til en for-løkke, øge værdien af ​​i inde i sløjfens krop.

Selvom begge programmer er teknisk korrekte, er det bedre at bruge til loop i dette tilfælde. Det skyldes, at antallet af iteration (op til num) er kendt.

Besøg denne side for at lære at finde et nummer af et nummer ved hjælp af rekursion.

Interessante artikler...