Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NWD REKURENCYJNIE
- #include <iostream>
- using namespace std;
- long int NWD_rekurencja(int a, int b)
- {
- if (a==b) return a;
- if (a>b) return NWD_rekurencja(a-b, b);
- return NWD_rekurencja(a, b-a);
- }
- int main()
- {
- int m, n;
- cout << "Wpisz pierwsza liczbe: ";
- cin >> m;
- cout << "Wpisz druga liczbe: ";
- cin >> n;
- cout << "NWD tych liczb to: " << NWD_rekurencja(m, n) << endl;
- return 0;
- }
- ===========================================================
- NWD ITERACYJNIE
- #include <iostream>
- using namespace std;
- int NWD_iteraycjnie(int a, int b)
- {
- int r;
- while (b>0)
- {
- r=a%b;
- a=b;
- b=r;
- }
- return a;
- }
- int main()
- {
- int m, n;
- cout << "Wpisz pierwsza liczbe: ";
- cin >> m;
- cout << "Wpisz druga liczbe: ";
- cin >> n;
- cout << "NWD tych liczb to: " << NWD_iteraycjnie(m, n) << endl;
- return 0;
- }
- =======================================================================
- Ulamki dodawanie i dzielenie
- #include <iostream>
- using namespace std;
- int NWD(int a, int b)
- {
- if (a==b) return a;
- if (a>b) return NWD(a-b, b);
- else return NWD(a, b-a);
- }
- int NWW (int a, int b)
- {
- return a/NWD(a,b)*b;
- }
- void dodawanie(int a1, int b1, int a2, int b2)
- {
- int wielokrotnosc=1;
- wielokrotnosc = NWW(b1, b2);
- int licznik = 1;
- if (a1==a2 && b1==b2) {
- cout << "wynik to: 1";
- }
- else if (b1==b2) {
- a1 = a1*wielokrotnosc;
- b1 = wielokrotnosc;
- a2 = a2*wielokrotnosc;
- b2 = wielokrotnosc;
- licznik = a1+a2;
- licznik = licznik/NWD(licznik, b2);
- wielokrotnosc = wielokrotnosc/NWD(licznik, b2);
- int wyciaganie = 1;
- wyciaganie = licznik/wielokrotnosc;
- licznik = licznik%wielokrotnosc;
- if (wyciaganie < 1) {
- cout << licznik << "/" << wielokrotnosc;
- }
- else if (licznik==0 || wielokrotnosc==0) {
- cout << wyciaganie;
- }
- else {
- cout << wyciaganie << " " << licznik << "/" << wielokrotnosc;
- }
- }
- else {
- a1 = a1*wielokrotnosc;
- b1 = wielokrotnosc;
- a2 = a2*wielokrotnosc;
- b2 = wielokrotnosc;
- licznik = a1+a2;
- licznik = licznik/NWD(licznik, b2);
- wielokrotnosc = wielokrotnosc/NWD(licznik, b2);
- int wyciaganie = 1;
- wyciaganie = licznik/wielokrotnosc;
- licznik = licznik%wielokrotnosc;
- if (wyciaganie < 1) {
- cout << licznik << "/" << wielokrotnosc;
- }
- else if (licznik==0 || wielokrotnosc==0) {
- cout << wyciaganie;
- }
- else {
- cout << wyciaganie << " " << licznik << "/" << wielokrotnosc;
- }
- }
- }
- void dzielenie(int a1, int b1, int a2, int b2)
- {
- int wynik1=1, wynik2=1;
- double wyciaganie=1;
- wynik1=a1*b2;
- wynik2=b1*a2;
- int wynik1nwd=1, wynik2nwd=1;
- wynik1nwd = a1*b2;
- wynik2nwd = b1*a2;
- if (wynik1==wynik2) {
- cout << "Wynik to: 1";
- }
- else if (wynik1>wynik2) {
- wynik1 = wynik1/(NWD(wynik1nwd, wynik2nwd));
- wynik2 = wynik2/(NWD(wynik1nwd, wynik2nwd));
- wyciaganie = wynik1/wynik2;
- wynik1 = wynik1%wynik2;
- if (wyciaganie < 1) {
- cout << wynik1 << "/" << wynik2;
- }
- else if (wynik1==0 || wynik2==0) {
- cout << wyciaganie;
- }
- else {
- cout << wyciaganie << " " << wynik1 << "/" << wynik2;
- }
- }
- else {
- wynik1 = wynik1/(NWD(wynik1nwd, wynik2nwd));
- wynik2 = wynik2/(NWD(wynik1nwd, wynik2nwd));
- cout << wynik1 << "/" << wynik2;
- }
- }
- int main()
- {
- double a1, b1, a2, b2;
- cout << "Wpisz licznik pierwszego ulamka: ";
- cin >> a1;
- cout << "Wpisz mianownik pierwszego ulamka: ";
- cin >> b1;
- cout << endl;
- cout << "Wpisz licznik drugiego ulamka: ";
- cin >> a2;
- cout << "Wpisz mianownik drugiego ulamka: ";
- cin >> b2;
- cout << endl;
- cout << "Wynik z dzielenia tych ulamkow: ";
- dzielenie(a1, b1, a2, b2);
- cout << endl;
- cout << "Wynik z dodawania tych ulamkow: ";
- dodawanie(a1, b1, a2, b2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement