/**
* 计算分数相加
*
* @param r
* 传递 分数对象
* @return 返回一个分数
*/
public Fraction plus(Fraction r) {
// 计算出没简化前的分子分母
int newFz = this.fz * r.fm + r.fz * this.fm;
int newFm = this.fm * r.fm;
return new Fraction(newFz, newFm);
}
/**
* 计算分数相乘
*
* @param r
* 传递 分数对象
* @return 返回一个分数
*/
public Fraction multiply(Fraction r) {
int newFz = this.fz * r.fz;
int newFm = this.fm * r.fm;
return new Fraction(newFz, newFm);
}
/**
* 求最大公约数
*
* @param a
* 传递过来的分子
* @param b
* 传递过来的分母
* @return 递归
*/
public static int getGys(int a, int b) {
// 如果a%b==0,则b是最大公约数
int mod = a % b;
if (mod == 0) {
return b;
} else {
return getGys(b, mod);
}
}
/**
* 分子 分母分别除以最大公约数 得到化简后的 分子分母值
*
* @param r
* @return
*/
public static Fraction huaJian(Fraction r) {
int newFz = r.fz / getGys(r.fz, r.fm);
int newFm = r.fm / getGys(r.fz, r.fm);
return new Fraction(newFz, newFm);
}