首页 > 解决方案 > 分数简化

问题描述

我正在尝试编写一个程序,将分数减少到最简单的形式,但它只是部分工作(将分子简化适当的数量,但使分母保持不变),有人可以帮我理解什么是失败的吗?

private int greatestCommonDivisor(int num1, int num2) {
    
    while(num1-num2!=0) {
        if(num1>num2) {
            num1 = num1 - num2;
        }
        else {
            num2 = num2 - num1;
        }
    }
    
    return num1;
    
}
private void simplify() {
    if(denominator<0) {
        numerator = numerator*(-1);
        denominator = denominator*(-1);
    }
    else {
        numerator = numerator/greatestCommonDivisor(numerator, denominator);
        denominator = denominator/greatestCommonDivisor(numerator, denominator);
    }
}
public String toString() {
    simplify();
    if(denominator == 1) {
        return numerator + "";
    }
    else if(numerator!=0) {
        return numerator + "/" + denominator;
    }
    else {
        return "0";
    }
    
}

我相信这是所有必要的信息,如果您需要其他信息,请务必告诉我。

标签: java

解决方案


推荐阅读