Bir Sayının Faktörünü Bulmak İçin Kotlin Programı

Bu programda, Kotlin'de for ve while döngüsünü kullanarak bir sayının faktöriyelini bulmayı öğreneceksiniz. Bu sorunu çözmek için aralıkları kullanmayı da öğreneceksiniz.

Pozitif bir n sayısının faktöriyeli şu şekilde verilir:

 n (n!) = 1 * 2 * 3 * 4 *… * n faktöriyeli 

Örnek 1: For döngüsünü kullanarak bir sayının çarpanını bulun

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

Programı çalıştırdığınızda, çıktı:

 10 faktöriyeli = 3628800

Bu programda, 1 ile verilen numara num (10) arasındaki tüm sayılar arasında döngü yapmak için for döngüsünü kullandık ve num'a kadar her sayının çarpımı değişken bir faktörde saklanır.

Java'dan farklı olarak, Kotlin'de 1… num1'den num'a kadar sayılar arasında döngü yapmak için ranges ( ) ve in operatörünü kullanabilirsiniz.

Ayrıca, faktöriyelin büyük sonuçlarını depolamak için int yerine long kullandık.

Ancak, daha büyük sayıların değerini saklayacak kadar büyük değil (100 diyelim). Uzun bir değişkende saklanamayan sonuçlar için, kitaplıkta BigIntegerbildirilen değişkeni kullanırız java.math.

İşte eşdeğer Java kodu: Bir Sayının Faktörünü Bulmak için Java Programı.

Örnek 2: BigInteger kullanarak bir sayının Faktöriyelini bulun

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

Programı çalıştırdığınızda, çıktı:

 30 faktöriyeli = 205891132094649000000000000000000000000000000

Burada, yerine long, kullandığımız BigIntegerdeğişken çarpınımını.

Birlikte *kullanılamadığından BigInteger, bunun yerine multiply()ürün için kullanıyoruz . Ayrıca sayı, BigIntegerçarpma için dönüştürülmelidir.

Aynı şekilde, bu sorunu çözmek için bir while döngüsü de kullanabiliriz.

Örnek 3: while döngüsünü kullanarak bir sayının faktörünü bulun

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

Programı çalıştırdığınızda, çıktı:

 5 = 120 faktöriyeli

Yukarıdaki programda, bir for döngüsünün aksine, döngünün gövdesi içindeki i değerini artırmamız gerekir.

Her iki program da teknik olarak doğru olsa da, bu durumda for döngüsü kullanmak daha iyidir. Bunun nedeni, yineleme sayısının (sayıya kadar) bilinmesidir.

Özyinelemeyi kullanarak bir sayının faktöriyelini bulmayı öğrenmek için bu sayfayı ziyaret edin.

Ilginç makaleler...