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

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

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες θεματολογίες προγραμματισμού Γ:

  • Χ προγραμματιστές προγραμματισμού
  • C για βρόχο
  • C αν… αλλιώς Δήλωση
  • C ενώ και κάνουμε… ενώ Loop

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

Υπάρχουν πολλοί τρόποι για να βρείτε τον καλύτερο κοινό διαιρέτη στον προγραμματισμό Γ.

Παράδειγμα # 1: Χρήση GCD για βρόχο και εάν η δήλωση

 #include int main() ( int n1, n2, i, gcd; printf("Enter two integers: "); scanf("%d %d", &n1, &n2); for(i=1; i <= n1 && i <= n2; ++i) ( // Checks if i is factor of both integers if(n1%i==0 && n2%i==0) gcd = i; ) printf("G.C.D of %d and %d is %d", n1, n2, gcd); return 0; ) 

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

Σε κάθε επανάληψη, εάν και τα n1 και n2 διακρίνονται ακριβώς από το i, η τιμή του i αντιστοιχεί στο gcd.

Όταν forολοκληρωθεί ο βρόχος, ο μεγαλύτερος κοινός διαιρέτης δύο αριθμών αποθηκεύεται στη μεταβλητή gcd.

Παράδειγμα # 2: GCD Χρήση while loop και εάν… αλλιώς Δήλωση

 #include int main() ( int n1, n2; printf("Enter two positive integers: "); scanf("%d %d",&n1,&n2); while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Παραγωγή

 Εισαγάγετε δύο θετικούς ακέραιους αριθμούς: 81 153 GCD = 9

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

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

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

 #include int main() ( int n1, n2; printf("Enter two integers: "); scanf("%d %d",&n1,&n2); // if user enters negative number, sign of the number is changed to positive n1 = ( n1> 0) ? n1 : -n1; n2 = ( n2> 0) ? n2 : -n2; while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Παραγωγή

 Εισαγάγετε δύο ακέραιους αριθμούς: 81 -153 GCD = 9

Μπορείτε επίσης να χρησιμοποιήσετε την αναδρομή για να βρείτε το GCD.

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