C Program til at finde GCD med to numre

Eksempler på forskellige måder at beregne GCD på to heltal (for både positive og negative heltal) ved hjælp af sløjfer og beslutningsudsagn.

For at forstå dette eksempel skal du have kendskab til følgende C-programmeringsemner:

  • C Programmeringsoperatører
  • C for Loop
  • C hvis… ellers Erklæring
  • C mens og gør … mens Loop

HCF eller GCD af to heltal er det største heltal, der nøjagtigt kan dele begge tal (uden en rest).

Der er mange måder at finde den største fælles divisor i C-programmering.

Eksempel # 1: GCD Brug til loop og if Statement

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

I dette program lagres to heltal indtastet af brugeren i variablen forn1 og n2. Derefter gentages sløjfe, indtil jeg er mindre end n1 og n2.

I hver iteration, hvis både n1 og n2 er nøjagtigt delelig med i, tildeles værdien af ​​i gcd.

Når forsløjfen er afsluttet, gemmes den største fælles skiller med to tal i variabel gcd.

Eksempel 2: GCD Brug mens loop og hvis … ellers Erklæring

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

Produktion

 Indtast to positive heltal: 81 153 GCD = 9

Dette er en bedre måde at finde GCD på. I denne metode trækkes mindre heltal fra det større heltal, og resultatet tildeles variablen med større heltal. Denne proces fortsættes, indtil n1 og n2 er ens.

Ovennævnte to programmer fungerer kun som beregnet, hvis brugeren indtaster positive heltal. Her er en lille ændring af det andet eksempel for at finde GCD til både positive og negative heltal.

Eksempel 3: GCD for både positive og negative tal

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

Produktion

 Indtast to heltal: 81-153 GCD = 9

Du kan også bruge rekursion til at finde GCD.

Interessante artikler...