Piemēri dažādiem veidiem, kā aprēķināt divu veselu skaitļu GCD (gan pozitīvajiem, gan negatīvajiem skaitļiem), izmantojot cilpas un lēmumu pieņemšanas paziņojumus.
Lai saprastu šo piemēru, jums jāzina par šādām C ++ programmēšanas tēmām:
- C ++, ja, ja … cits, un Nested, ja … cits
- C ++ lokam
- C ++ kamēr un darīt … kamēr cilpa
Lielākais vesels skaitlis, kas var pilnīgi sadalīt divus skaitļus, ir pazīstams kā GCD vai HCF no šiem diviem skaitļiem.
1. piemērs: atrodiet GCD, izmantojot while loop
#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; )
Rezultāts
Ievadiet divus skaitļus: 78 52 HCF = 26
Iepriekšējā programmā mazāks skaitlis tiek atņemts no lielāka skaita, un šis skaitlis tiek saglabāts lielāka skaita vietā.
Šis process tiek turpināts, līdz divi skaitļi kļūst vienādi, kas būs HCF.
Piemērs: 2. Atrodiet HCF / GCD, izmantojot cilpu
#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; )
Šīs programmas loģika ir vienkārša.
Šajā programmā mazs vesels skaitlis starp n1 un n2 tiek saglabāts n2. Tad cilpa tiek iterēta no i = 1
līdz i <= n2
un katrā atkārtojumā i vērtība tiek palielināta par 1.
Ja abi skaitļi dalās ar i, tad šis skaitlis tiek saglabāts mainīgajā hcf.
Kad atkārtojums ir pabeigts, HCF tiks saglabāts mainīgajā hcf.