C Programa rasti dviejų skaičių GCD

Dviejų sveikų skaičių (tiek teigiamų, tiek neigiamų sveikųjų skaičių) GCD apskaičiavimo būdų, naudojant kilpas ir sprendimų priėmimo teiginius, pavyzdžiai.

Norėdami suprasti šį pavyzdį, turėtumėte žinoti šias C programavimo temas:

  • C programavimo operatoriai
  • C kilpai
  • C jei … dar pareiškimas
  • C kol ir daryk … kol kilpa

Dviejų sveikų skaičių HCF arba GCD yra didžiausias sveikas skaičius, galintis tiksliai padalyti abu skaičius (be liekanos).

Yra daug būdų, kaip surasti didžiausią bendrą daliklį programuojant C.

1 pavyzdys: GCD naudojimas ciklui ir if pareiškimui

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

Šioje programoje du vartotojo įvesti skaičiai yra saugomi kintamuosiuose forn1 ir n2. Tada ciklas kartojamas, kol i yra mažesnis nei n1 ir n2.

Kiekvienoje iteracijoje, jei ir n1, ir n2 tiksliai dalijasi iš i, i vertė priskiriama gcd.

Baigus forkilpą, didžiausias bendras dviejų skaičių daliklis saugomas kintamajame gcd.

2 pavyzdys: GCD naudojant while loop ir if… else pareiškimas

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

Rezultatas

 Įveskite du teigiamus skaičius: 81 153 GCD = 9

Tai yra geresnis būdas rasti GCD. Taikant šį metodą, mažesnis sveikasis skaičius atimamas iš didesnio sveiko skaičiaus, o rezultatas priskiriamas kintamajam, turinčiam didesnį skaičių. Šis procesas tęsiamas tol, kol n1 ir n2 yra lygūs.

Minėtos dvi programos veikia taip, kaip numatyta, tik jei vartotojas įveda teigiamus skaičius. Štai šiek tiek modifikuotas antrasis pavyzdys, norint rasti teigiamų ir neigiamų sveikųjų skaičių GCD.

3 pavyzdys: teigiamų ir neigiamų skaičių 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; )

Rezultatas

 Įveskite du skaičius: 81-153 GCD = 9

Norėdami rasti GCD, taip pat galite naudoti rekursiją.

Įdomios straipsniai...