import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone {
public static void main
(String[] args
) { new Ideone();
}
public Ideone() {
Fraction f1 = new Fraction(1, 3);
f1.print();
Fraction f2 = new Fraction(1, 2);
f2.print();
Fraction f3 = f1.add(f2);
f3.print();
}
private class Fraction {
public double numerator = 0;
public double denominator = 0;
public Fraction() { }
public Fraction(Fraction f) {
this.numerator = f.numerator;
this.denominator = f.denominator;
}
public Fraction(double numerator, double denominator) {
this.numerator = numerator;
this.denominator = denominator;
}
public Fraction add(Fraction f1) {
Fraction f2 = new Fraction();
f2.denominator = this.denominator * f1.denominator;
f2.numerator = this.numerator * f1.denominator + f1.numerator * this.denominator;
return f2;
}
public Fraction add(double d) {
Fraction f = new Fraction(this);
f.numerator += d * f.denominator;
return f;
}
public void print() {
int length
= Math.
max(numerator.
length(), denominator.
length()); int point
= Math.
min(numerator.
length()-numerator.
indexOf('.'), denominator.
length()-denominator.
indexOf('.'));
for (int i
=0; i
<length
; i
++) System.
out.
print('-'); System.
out.
println(String.
format(" %.0f",
this.
denominator)); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCW5ldyBJZGVvbmUoKTsKCX0KCXB1YmxpYyBJZGVvbmUoKSB7CgkJRnJhY3Rpb24gZjEgPSBuZXcgRnJhY3Rpb24oMSwgMyk7CgkJZjEucHJpbnQoKTsKCQlGcmFjdGlvbiBmMiA9IG5ldyBGcmFjdGlvbigxLCAyKTsKCQlmMi5wcmludCgpOwoJCQoJCUZyYWN0aW9uIGYzID0gZjEuYWRkKGYyKTsKCQlmMy5wcmludCgpOwoJfQoJCglwcml2YXRlIGNsYXNzIEZyYWN0aW9uIHsKCQlwdWJsaWMgZG91YmxlIG51bWVyYXRvciA9IDA7CgkJcHVibGljIGRvdWJsZSBkZW5vbWluYXRvciA9IDA7CgkJCgkJcHVibGljIEZyYWN0aW9uKCkgeyB9CgkJcHVibGljIEZyYWN0aW9uKEZyYWN0aW9uIGYpIHsKCQkJdGhpcy5udW1lcmF0b3IgPSBmLm51bWVyYXRvcjsKCQkJdGhpcy5kZW5vbWluYXRvciA9IGYuZGVub21pbmF0b3I7CgkJfQoJCXB1YmxpYyBGcmFjdGlvbihkb3VibGUgbnVtZXJhdG9yLCBkb3VibGUgZGVub21pbmF0b3IpIHsKCQkJdGhpcy5udW1lcmF0b3IgPSBudW1lcmF0b3I7CgkJCXRoaXMuZGVub21pbmF0b3IgPSBkZW5vbWluYXRvcjsKCQl9CgkJCgkJcHVibGljIEZyYWN0aW9uIGFkZChGcmFjdGlvbiBmMSkgewoJCQlGcmFjdGlvbiBmMiA9IG5ldyBGcmFjdGlvbigpOwoJCQkKCQkJZjIuZGVub21pbmF0b3IgPSB0aGlzLmRlbm9taW5hdG9yICogZjEuZGVub21pbmF0b3I7CgkJCWYyLm51bWVyYXRvciA9IHRoaXMubnVtZXJhdG9yICogZjEuZGVub21pbmF0b3IgKyBmMS5udW1lcmF0b3IgKiB0aGlzLmRlbm9taW5hdG9yOwoJCQlyZXR1cm4gZjI7CgkJfQoJCXB1YmxpYyBGcmFjdGlvbiBhZGQoZG91YmxlIGQpIHsKCQkJRnJhY3Rpb24gZiA9IG5ldyBGcmFjdGlvbih0aGlzKTsKCQkJZi5udW1lcmF0b3IgKz0gZCAqIGYuZGVub21pbmF0b3I7CgkJCXJldHVybiBmOwoJCX0KCQlwdWJsaWMgdm9pZCBwcmludCgpIHsKCQkJU3RyaW5nIG51bWVyYXRvciA9IFN0cmluZy52YWx1ZU9mKHRoaXMubnVtZXJhdG9yKTsKCQkJU3RyaW5nIGRlbm9taW5hdG9yID0gU3RyaW5nLnZhbHVlT2YodGhpcy5kZW5vbWluYXRvcik7CgkJCWludCBsZW5ndGggPSBNYXRoLm1heChudW1lcmF0b3IubGVuZ3RoKCksIGRlbm9taW5hdG9yLmxlbmd0aCgpKTsKCQkJaW50IHBvaW50ID0gTWF0aC5taW4obnVtZXJhdG9yLmxlbmd0aCgpLW51bWVyYXRvci5pbmRleE9mKCcuJyksIGRlbm9taW5hdG9yLmxlbmd0aCgpLWRlbm9taW5hdG9yLmluZGV4T2YoJy4nKSk7CgkJCQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oU3RyaW5nLmZvcm1hdCgiICUuMGYiLCB0aGlzLm51bWVyYXRvcikpOwoJCQlmb3IgKGludCBpPTA7IGk8bGVuZ3RoOyBpKyspIFN5c3RlbS5vdXQucHJpbnQoJy0nKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihTdHJpbmcuZm9ybWF0KCIgJS4wZiIsIHRoaXMuZGVub21pbmF0b3IpKTsKCQl9Cgl9Cn0=