Kotlin program két szám GCD-jének megkeresésére

Ebben a programban megtanulja megtalálni Kotlin két számának GCD-jét. Ez a while ciklus használatával történik, ha másként utasítás.

Két egész szám HCF vagy GCD a legnagyobb egész szám, amely pontosan el tudja osztani mindkét számot (maradék nélkül).

1. példa: Keresse meg két szám GCD-jét a while ciklus használatával

 fun main(args: Array) ( val n1 = 81 val n2 = 153 var gcd = 1 var i = 1 while (i <= n1 && i <= n2) ( // Checks if i is factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i ++i ) println("G.C.D of $n1 and $n2 is $gcd") )

A program futtatásakor a kimenet a következő lesz:

 A 81 és 153 GCD értéke 9

Itt két számot, amelyeknek GCD-je megtalálható, az n1 és az n2 tárolja.

Ezután egy darab ciklust hajtunk végre, amíg i kisebb lesz, mint n1 és n2. Így a két szám közül az 1 és a legkisebb számot iterálják, hogy megtalálják a GCD-t.

Ha n1 és n2 egyaránt osztható i-vel, a gcd a számra van állítva. Ez addig folytatódik, amíg meg nem találja a legnagyobb számot (GCD), amely az n1-et és az n2-t is osztja maradék nélkül.

A Java-val ellentétben a for ciklust nem használhatja a probléma feltételeivel. Itt található az egyenértékű Java-kód: Java program két szám GCD-jének megkeresésére.

Van egy jobb alternatíva a GCD Kotlinban történő megtalálásához az alábbiak szerint:

2. példa: Keresse meg két szám GCD-jét (jobb alternatíva)

 fun main(args: Array) ( var n1 = 81 var n2 = 153 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )

A program futtatásakor a kimenet a következő lesz:

 GCD = 9

Ez jobb módja a GCD megtalálásának. Ebben a módszerben a kisebb egész számot kivonjuk a nagyobb egész számból, és az eredményt a nagyobb egész számot tartalmazó változóhoz rendeljük. Ezt a folyamatot addig folytatjuk, amíg n1 és n2 meg nem egyezik.

A fenti két program csak akkor működik rendeltetésszerűen, ha a felhasználó pozitív egész számokat ad meg. Itt van egy kis módosítás a második példán, hogy megtaláljuk a GCD-t pozitív és negatív egész számokra egyaránt.

3. példa: GCD pozitív és negatív számokra egyaránt

 fun main(args: Array) ( var n1 = 81 var n2 = -153 // Always set to positive n1 = if (n1> 0) n1 else -n1 n2 = if (n2> 0) n2 else -n2 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )

A program futtatásakor a kimenet a következő lesz:

 GCD = 9

érdekes cikkek...