This commit is contained in:
a25liang
2024-07-12 16:41:42 -04:00
parent e7865b0c57
commit 50f058e7ea
57 changed files with 853 additions and 871 deletions

View File

@ -1,44 +1,44 @@
#include "fraction.h"
fraction fraction::operator+(const fraction &frac) {
fraction tmp = *this;
tmp.numerator = tmp.numerator * frac.denominator +
tmp.denominator * frac.numerator;
tmp.denominator = tmp.denominator * frac.denominator;
return tmp.simplify();
fraction tmp = *this;
tmp.numerator = tmp.numerator * frac.denominator +
tmp.denominator * frac.numerator;
tmp.denominator = tmp.denominator * frac.denominator;
return tmp.simplify();
}
fraction fraction::operator*(const fraction &frac) {
fraction tmp = *this;
tmp.numerator = tmp.numerator * frac.numerator;
tmp.denominator = tmp.denominator * frac.denominator;
return tmp.simplify();
fraction tmp = *this;
tmp.numerator = tmp.numerator * frac.numerator;
tmp.denominator = tmp.denominator * frac.denominator;
return tmp.simplify();
}
bool fraction::operator==(const fraction &frac) {
this->simplify();
return gcd(frac.numerator, this->numerator) == this->numerator &&
gcd(frac.denominator, this->denominator) == this->denominator;
this->simplify();
return gcd(frac.numerator, this->numerator) == this->numerator &&
gcd(frac.denominator, this->denominator) == this->denominator;
}
bool fraction::operator!=(const fraction &frac) {
return !(*this == frac);
return !(*this == frac);
}
fraction &fraction::simplify() {
int g = gcd(numerator, denominator);
numerator /= g;
denominator /= g;
return *this;
int g = gcd(numerator, denominator);
numerator /= g;
denominator /= g;
return *this;
}
float fraction::real() {
return (float)numerator / denominator;
return (float)numerator / denominator;
}
int fraction::gcd(int a, int b) {
if (a % b == 0)
return b;
if (a % b == 0)
return b;
return gcd(b, a % b);
return gcd(b, a % b);
}