Πρόγραμμα Kotlin για την εύρεση GCD δύο αριθμών

Σε αυτό το πρόγραμμα, θα μάθετε να βρείτε GCD δύο αριθμών στο Kotlin. Αυτό γίνεται χρησιμοποιώντας το while loop με τη βοήθεια της δήλωσης if else.

Το HCF ή GCD δύο ακέραιων είναι ο μεγαλύτερος ακέραιος που μπορεί να διαιρέσει ακριβώς και τους δύο αριθμούς (χωρίς υπόλοιπο).

Παράδειγμα 1: Βρείτε GCD δύο αριθμών χρησιμοποιώντας 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") )

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 Το GCD των 81 και 153 είναι 9

Εδώ, δύο αριθμοί των οποίων το GCD βρίσκονται, αποθηκεύονται στα n1 και n2 αντίστοιχα.

Στη συνέχεια, εκτελείται ένας βρόχος ενώ το i είναι μικρότερο από το n1 και το n2. Με αυτόν τον τρόπο, όλοι οι αριθμοί μεταξύ του 1 και του μικρότερου από τους δύο αριθμούς επαναλαμβάνονται για την εύρεση του GCD.

Εάν και τα δύο n1 και n2 διαιρούνται με i, το gcd ορίζεται στον αριθμό. Αυτό συνεχίζεται μέχρι να βρει τον μεγαλύτερο αριθμό (GCD) που διαιρεί και τα n1 και n2 χωρίς υπόλοιπο.

Σε αντίθεση με την Java, δεν μπορείτε να χρησιμοποιήσετε έναν βρόχο με συνθήκες για αυτό το πρόβλημα. Εδώ είναι ο αντίστοιχος κώδικας Java: Πρόγραμμα Java για την εύρεση GCD δύο αριθμών.

Υπάρχει μια καλύτερη εναλλακτική λύση για την εύρεση του GCD στο Kotlin ως εξής:

Παράδειγμα 2: Εύρεση GCD δύο αριθμών (Better Alternative)

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

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 GCD = 9

Αυτός είναι ένας καλύτερος τρόπος για να βρείτε το GCD. Σε αυτήν τη μέθοδο, ο μικρότερος ακέραιος αφαιρείται από τον μεγαλύτερο ακέραιο και το αποτέλεσμα αντιστοιχεί στη μεταβλητή που κρατά μεγαλύτερο ακέραιο. Αυτή η διαδικασία συνεχίζεται έως ότου τα n1 και n2 είναι ίδια.

Τα παραπάνω δύο προγράμματα λειτουργούν όπως προορίζεται μόνο εάν ο χρήστης εισάγει θετικούς ακέραιους αριθμούς. Ακολουθεί μια μικρή τροποποίηση του δεύτερου παραδείγματος για να βρείτε το GCD τόσο για θετικούς όσο και για αρνητικούς ακέραιους αριθμούς.

Παράδειγμα 3: GCD τόσο για θετικούς όσο και για αρνητικούς αριθμούς

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

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 GCD = 9

ενδιαφέροντα άρθρα...