C programma divu ciparu GCD atrašanai

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 vajadzētu būt zināšanām par šādām C programmēšanas tēmām:

  • C programmēšanas operatori
  • C cilnei
  • C ja … cits paziņojums
  • C kamēr un dari … kamēr Loop

Divu veselu skaitļu HCF vai GCD ir lielākais vesels skaitlis, kas var precīzi sadalīt abus skaitļus (bez atlikuma).

Ir daudzi veidi, kā atrast lielāko kopīgo dalītāju C programmēšanā.

1. piemērs: GCD izmantošana ciklam un if paziņojums

 #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; ) 

Šajā programmā divi lietotāja ievadītie veseli skaitļi tiek saglabāti mainīgajos forn1 un n2. Pēc tam cilpa tiek atkārtota, līdz i ir mazāks par n1 un n2.

Katrā atkārtojumā, ja gan n1, gan n2 ir precīzi dalāmi ar i, i vērtība tiek piešķirta gcd.

Kad forcilpa ir pabeigta, lielākais divu skaitļu kopējais dalītājs tiek saglabāts mainīgajā gcd.

2. piemērs: GCD Izmantojot while ciklu un ja … cits paziņojums

 #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; )

Rezultāts

 Ievadiet divus pozitīvos skaitļus: 81 153 GCD = 9

Tas ir labāks veids, kā atrast GCD. Šajā metodē mazāks vesels skaitlis tiek atņemts no lielākā skaitļa, un rezultāts tiek piešķirts mainīgajam, kurš tur lielāku skaitli. Šis process tiek turpināts, līdz n1 un n2 ir vienādi.

Iepriekš minētās divas programmas darbojas kā paredzēts tikai tad, ja lietotājs ievada pozitīvus veselus skaitļus. Šeit ir neliela otrā piemēra modifikācija, lai atrastu GCD gan pozitīviem, gan negatīviem veseliem skaitļiem.

3. piemērs: GCD gan pozitīvajiem, gan negatīvajiem skaitļiem

 #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; )

Rezultāts

 Ievadiet divus skaitļus: 81 -153 GCD = 9

GCD atrašanai varat izmantot arī rekursiju.

Interesanti raksti...