Ocena użytkownikóww: ***** / 0
Nadesłany przez Nikodem Solarz, 19 października 2013 21:15
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
nww.cpp:
/*======================================================
**Implementacja algorytmu Euklidesa
**Narzew
**18.10.2013
**dla portalu algorytm.org
======================================================*/
#include <cstdlib>
#include <iostream>
#include <cstdio>
using namespace std;
/*======================================================
**oblicz_nwd(a,b,p)
**Największy wspólny dzielnik
**a => liczba A
**b => liczba B
**c => czy wyświetlać obliczenia ? 0 - nie, 1 - tak
======================================================*/
int oblicz_nwd(int a,int b, bool print){
int count = 0;
if (a == b){
if (print == true){ cout<< "Wynik : "<<a<<"\n"; }
return a;
}
while (a != b){
count++;
if (a < b){
b = b-a;
if (print == true){ printf("#%d: A: %d B: %d\n",count,a,b); }
} else {
a = a-b;
if (print == true){ printf("#%d: A: %d B: %d\n",count,a,b); }
}
}
if (print==true){ cout << "NWD: "<<a<<"\n"; }
return a;
}
/*======================================================
**oblicz_nww(a,b,p)
**Najmniejsza wspólna wielokrotność
**a => liczba A
**b => liczba B
**c => czy wyświetlać obliczenia ? 0 - nie, 1 - tak
======================================================*/
int oblicz_nww(int a,int b, bool print){
int x;
x = (a*b)/oblicz_nwd(a,b,print);
if (print == true){ cout << "NWW: "<<x<<"\n"; }
return x;
}
/*======================================================
**Main
======================================================*/
int main(){
int wybor,a,b;
cout << "Obliczanie NWD i NWW by Narzew\n"<<
"18.10.2013\n\n";
cout<<"0 - oblicz NWD\n"<<
"1 - oblicz NWW\n";
cin >> wybor;
wybor = (int)wybor;
if (wybor == 0 || wybor == 1){} else { cout << "Zly wybor!"; return -1; }
if(int(wybor) == 0){
cout << "Podaj pierwsza liczbe : ";
cin >> a;
cout << "Podaj druga liczbe : ";
cin >> b;
oblicz_nwd(a,b,true);
} else {
cout << "Podaj pierwsza liczbe: ";
cin >> a;
cout << "Podaj druga liczbe: ";
cin >> b;
oblicz_nww(a,b,true);
}
return 0;
}