Esimerkkejä eri tavoista laskea kahden kokonaisluvun GCD (sekä positiivisille että negatiivisille kokonaisluvuille) silmukoiden ja päätöksentekolausekkeiden avulla.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C ++ -ohjelmointiaiheista:
- C ++ jos, jos… muu ja sisäkkäinen, jos … muuten
- C ++ silmukalle
- C ++ taas ja tee … silmukan aikana
Suurin kokonaisluku, joka voi täydellisesti jakaa kaksi kokonaislukua, tunnetaan näiden kahden numeron nimellä GCD tai HCF.
Esimerkki 1: Etsi GCD while-silmukan avulla
#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; )
Tuotos
Syötä kaksi numeroa: 78 52 HCF = 26
Yllä olevassa ohjelmassa pienempi luku vähennetään suuremmasta numerosta ja kyseinen numero tallennetaan suuremman luvun sijasta.
Tätä prosessia jatketaan, kunnes kahdesta luvusta tulee yhtä suuri, mikä on HCF.
Esimerkki: 2. Etsi HCF / GCD käyttämällä silmukkaa
#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; )
Tämän ohjelman logiikka on yksinkertainen.
Tässä ohjelmassa pieni kokonaisluku n1 ja n2 välillä tallennetaan n2: een. Sitten silmukka iteroidaan vaiheesta i = 1
toiseen i <= n2
ja jokaisessa iteraatiossa i: n arvoa kasvatetaan yhdellä.
Jos molemmat luvut ovat jaettavissa i: llä, kyseinen numero tallennetaan muuttujaan hcf.
Kun iterointi on valmis, HCF tallennetaan muuttujaan hcf.