|
@@ -11,12 +11,21 @@ Fraction::Fraction(long long int num, long long int denum)
|
|
|
int layer, spec;
|
|
|
while(num > 1 or denum > 1)
|
|
|
{
|
|
|
+ if (num == 0 or denum == 0) {
|
|
|
+ cout << num + denum << endl;
|
|
|
+ layers.add(num + denum);
|
|
|
+ break;
|
|
|
+ }
|
|
|
layer = num / denum;
|
|
|
spec = denum;
|
|
|
denum = num - (layer*denum);
|
|
|
num = spec;
|
|
|
+ cout << layer;
|
|
|
layers.add(layer);
|
|
|
+ cout << " added\n";
|
|
|
+ cout << num << ' ' << denum << endl;
|
|
|
}
|
|
|
+ cout << "init success" << endl;
|
|
|
}
|
|
|
|
|
|
Fraction::Fraction(Rational r)
|
|
@@ -45,8 +54,19 @@ Fraction::operator Rational()
|
|
|
return Rational(denum, num);
|
|
|
}
|
|
|
|
|
|
+Fraction::operator double()
|
|
|
+{
|
|
|
+ return double(Rational(*this));
|
|
|
+}
|
|
|
+
|
|
|
+Fraction::operator int()
|
|
|
+{
|
|
|
+ return int(double(*this));
|
|
|
+}
|
|
|
+
|
|
|
ostream& operator <<(ostream& out, Fraction& f)
|
|
|
{
|
|
|
+ cout << "<< oper" << endl;
|
|
|
out << f.layers;
|
|
|
return out;
|
|
|
}
|