📄 rational.java
字号:
// Rational.java: Define a rational number and its associated
// operations such as add, subtract, multiply, and divide
public class Rational
{
// Data fields for numerator and denominator
private long numerator = 0;
private long denominator = 1;
// Default constructor
public Rational()
{
this(0, 1);
}
// Construct a rational with specified numerator and denominator
public Rational(long numerator, long denominator)
{
long gcd = gcd(numerator, denominator);
this.numerator = numerator/gcd;
this.denominator = denominator/gcd;
}
// Find GCD of two numbers
private long gcd(long n, long d)
{
long t1 = Math.abs(n);
long t2 = Math.abs(d);
long remainder = t1%t2;
while (remainder != 0)
{
t1 = t2;
t2 = remainder;
remainder = t1%t2;
}
return t2;
}
// Getter method for numerator
public long getNumerator()
{
return numerator;
}
public long getDenominator()
{
return denominator;
}
// Add a rational number to this rational
public Rational add(Rational secondRational)
{
long n = numerator*secondRational.getDenominator() +
denominator*secondRational.getNumerator();
long d = denominator*secondRational.getDenominator();
return new Rational(n, d);
}
// Subtract a rational number from this rational
public Rational subtract(Rational secondRational)
{
long n = numerator*secondRational.getDenominator()
- denominator*secondRational.getNumerator();
long d = denominator*secondRational.getDenominator();
return new Rational(n, d);
}
// Multiply a rational number to this rational
public Rational multiply(Rational secondRational)
{
long n = numerator*secondRational.getNumerator();
long d = denominator*secondRational.getDenominator();
return new Rational(n, d);
}
// Divide a rational number from this rational
public Rational divide(Rational secondRational)
throws RuntimeException
{
if (secondRational.getNumerator() == 0)
throw new RuntimeException("Denominator cannot be zero");
long n = numerator*secondRational.getDenominator();
long d = denominator*secondRational.getNumerator();
return new Rational(n, d);
}
// Override the toString() method
public String toString()
{
if (denominator == 1)
return numerator + "";
else
return numerator + "/" + denominator;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -