blob: 3eec82c362e3f2a7277cdd204c5f3bea43b35565 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
object Rationals {
class Rational(x :Int, y: Int) {
private def gcd(a: Int, b: Int): Int = if (b == 0) a else gcd(b, a % b)
private val g = gcd(x, y)
def numer = x / g
def denom = y / g
def neg = new Rational(-numer, denom)
def add(that: Rational) =
new Rational(
numer * that.denom + that.numer * denom,
denom * that.denom)
def sub(that: Rational) = add(that.neg)
override def toString = numer + "/" + denom
}
def run = {
println("Rationals")
println(new Rational(2, 3).add(new Rational(3, 4)).toString)
println(new Rational(1, 3).sub(new Rational(5 ,7)).sub(new Rational(3, 2)).toString)
}
}
|