Príklady rôznych spôsobov výpočtu GCD dvoch celých čísel (pre kladné aj záporné celé čísla) pomocou slučiek a rozhodovacích výrokov.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich programovacích tém C ++:
- C ++ ak, ak … inak a Vnorené, ak … inak
- C ++ pre slučku
- C ++ zatiaľ čo a robiť … zatiaľ čo Loop
Najväčšie celé číslo, ktoré dokáže dokonale rozdeliť dve celé čísla, je známe ako GCD alebo HCF z týchto dvoch čísel.
Príklad 1: Vyhľadajte GCD pomocou cyklu while
#include using namespace std; int main() ( int n1, n2; cout <> n1>> n2; while(n1 != n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) cout << "HCF = " << n1; return 0; )
Výkon
Zadajte dve čísla: 78 52 HCF = 26
Vo vyššie uvedenom programe sa menšie číslo odpočíta od väčšieho čísla a toto číslo sa uloží na miesto väčšieho čísla.
Tento proces pokračuje, kým sa dve čísla nestanú rovnakými, čo bude HCF.
Príklad: 2. Vyhľadajte HCF / GCD pomocou cyklu for
#include using namespace std; int main() ( int n1, n2, hcf; cout <> n1>> n2; // Swapping variables n1 and n2 if n2 is greater than n1. if ( n2> n1) ( int temp = n2; n2 = n1; n1 = temp; ) for (int i = 1; i <= n2; ++i) ( if (n1 % i == 0 && n2 % i ==0) ( hcf = i; ) ) cout << "HCF = " << hcf; return 0; )
Logika tohto programu je jednoduchá.
V tomto programe je malé celé číslo medzi n1 a n2 uložené v n2. Potom je slučka iterovaná od i = 1
do i <= n2
a v každej iterácii je hodnota i zvýšená o 1.
Ak sú obe čísla deliteľné i, potom je toto číslo uložené v premennej hcf.
Po dokončení iterácie sa HCF uloží do premennej hcf.