设计分数类Fraction,要求实现分数的运算功能,包括:
a、加法,函数名plus;
b、减法,函数名subtract;
c、乘法,函数名multiply;
d、除法,函数名divide;
e、倒数,函数名reciprocal;
f、相反数,函数名opposite;
g、生成输出串,函数名toString。
设计分数类Fraction,要求实现分数的运算功能,包括:
a、加法,函数名plus;
b、减法,函数名subtract;
c、乘法,函数名multiply;
d、除法,函数名divide;
e、倒数,函数名reciprocal;
f、相反数,函数名opposite;
g、生成输出串,函数名toString。
详细代码实现和测试用例如下,望采纳
public class Fraction {
private int numerator; // 分子
private int denominator; // 分母
public Fraction(int numerator, int denominator) {
this.numerator = numerator;
this.denominator = denominator;
}
// 加法
public Fraction plus(Fraction other) {
int newNumerator = this.numerator * other.denominator + other.numerator * this.denominator;
int newDenominator = this.denominator * other.denominator;
return new Fraction(newNumerator, newDenominator);
}
// 减法
public Fraction subtract(Fraction other) {
int newNumerator = this.numerator * other.denominator - other.numerator * this.denominator;
int newDenominator = this.denominator * other.denominator;
return new Fraction(newNumerator, newDenominator);
}
// 乘法
public Fraction multiply(Fraction other) {
int newNumerator = this.numerator * other.numerator;
int newDenominator = this.denominator * other.denominator;
return new Fraction(newNumerator, newDenominator);
}
// 除法
public Fraction divide(Fraction other) {
int newNumerator = this.numerator * other.denominator;
int newDenominator = this.denominator * other.numerator;
return new Fraction(newNumerator, newDenominator);
}
// 倒数
public Fraction reciprocal() {
return new Fraction(this.denominator, this.numerator);
}
// 相反数
public Fraction opposite() {
return new Fraction(-this.numerator, this.denominator);
}
// 生成输出串
public String toString() {
return String.format("%d/%d", this.numerator, this.denominator);
}
}
测试用例
Fraction a = new Fraction(1, 2);
Fraction b = new Fraction(3, 4);
System.out.println(a.plus(b)); // 输出:5/4
System.out.println(a.subtract(b)); // 输出:-1/4
System.out.println(a.multiply(b)); // 输出:3/8
System.out.println(a.divide(b)); // 输出:2/3
System.out.println(a.reciprocal()); // 输出:2/1
System.out.println(a.opposite()); // 输出:-1/2