Šioje programoje sužinosite, kaip rasti Kotlino dviejų skaičių GCD. Tai daroma naudojant while loop su if if teiginio pagalba.
Dviejų sveikų skaičių HCF arba GCD yra didžiausias sveikas skaičius, galintis tiksliai padalyti abu skaičius (be liekanos).
1 pavyzdys: raskite dviejų skaičių GCD naudodami „while loop“
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") )
Kai paleisite programą, išvestis bus:
81 ir 153 GCD yra 9
Čia du skaičiai, kurių GCD turi būti rasti, saugomi atitinkamai n1 ir n2.
Tada, kol ciklas vykdomas, kol i yra mažesnis nei n1, ir n2. Tokiu būdu visi skaičiai nuo 1 iki mažiausio iš dviejų skaičių kartojami, norint rasti GCD.
Jei tiek n1, tiek n2 dalijasi iš i, gcd nustatomas pagal skaičių. Tai tęsiasi tol, kol suranda didžiausią skaičių (GCD), kuris dalija tiek n1, tiek n2 be likutinės dalies.
Skirtingai nuo „Java“, negalite naudoti „for loop“ su šios problemos sąlygomis. Čia yra lygiavertis „Java“ kodas: „Java“ programa, skirta rasti dviejų skaičių GCD.
Yra geresnė alternatyva rasti GCD Kotline taip:
2 pavyzdys: raskite dviejų skaičių GCD (geresnė alternatyva)
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") )
Kai paleisite programą, išvestis bus:
GCD = 9
Tai yra geresnis būdas rasti GCD. Taikant šį metodą, mažesnis sveikasis skaičius atimamas iš didesnio sveiko skaičiaus, o rezultatas priskiriamas kintamajam, turinčiam didesnį skaičių. Šis procesas tęsiamas tol, kol n1 ir n2 yra lygūs.
Minėtos dvi programos veikia taip, kaip numatyta, tik jei vartotojas įveda teigiamus skaičius. Štai šiek tiek modifikuotas antrasis pavyzdys, norint rasti teigiamų ir neigiamų sveikųjų skaičių GCD.
3 pavyzdys: GCD teigiamiems ir neigiamiems skaičiams
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") )
Kai paleisite programą, išvestis bus:
GCD = 9