Facebook
From MSzopa, 4 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 141
  1. int NWD(int a, int b) {
  2.     if (a != b) {
  3.         if (a < b) {
  4.             NWD(a, b - a);
  5.         }
  6.         else {
  7.             NWD(a - b, b);
  8.         }
  9.     }
  10.     else {
  11.         return a;
  12.     }
  13. }
  14. class Ulamek {
  15. public:
  16.     int Licznik;
  17.     int Mianownik;
  18.     Ulamek() {
  19.  
  20.     }
  21.     Ulamek(int licznik, int mianownik) {
  22.         Licznik = licznik;
  23.         if (mianownik != 0)
  24.             Mianownik = mianownik;
  25.     }
  26.     static Ulamek Suma(Ulamek one, Ulamek two) {
  27.         Ulamek ret = Ulamek();
  28.         if (one.Mianownik == two.Mianownik) {
  29.             ret.Licznik = one.Licznik + two.Licznik;
  30.             ret.Mianownik = one.Mianownik;
  31.         }
  32.         else {
  33.             ret.Licznik = one.Licznik * two.Mianownik + two.Licznik * one.Mianownik;
  34.             ret.Mianownik = one.Mianownik * two.Mianownik;
  35.         }
  36.         return ret;
  37.     }
  38.     static Ulamek Roznica(Ulamek one, Ulamek two) {
  39.         Ulamek ret = Ulamek();
  40.         if (one.Mianownik == two.Mianownik) {
  41.             ret.Licznik = one.Licznik - two.Licznik;
  42.             ret.Mianownik = one.Mianownik;
  43.         }
  44.         else {
  45.             ret.Licznik = one.Licznik * two.Mianownik - two.Licznik * one.Mianownik;
  46.             ret.Mianownik = one.Mianownik * two.Mianownik;
  47.         }
  48.         return ret;
  49.     }
  50.     static Ulamek Iloczyn(Ulamek one, Ulamek two) {
  51.         return Ulamek(one.Licznik * two.Licznik, two.Mianownik * one.Mianownik);
  52.     }
  53.     static Ulamek Iloraz(Ulamek one, Ulamek two) {
  54.         return Ulamek(one.Licznik * two.Mianownik, two.Licznik * one.Mianownik);
  55.     }
  56.     static Ulamek Skroc(Ulamek One) {
  57.         int a = NWD(One.Licznik, One.Mianownik);
  58.         return Ulamek(One.Licznik / a, One.Mianownik / a);
  59.     }
  60. };
  61.