当两个num都是int时,如何简化分数

时间:2014-02-15 03:57:28

标签: java fractions

我必须尽可能简化一小部分。必须是Java。

这是我到目前为止所拥有的

if (numerator != 0)
    {

        numerator += denominator;
        denominator += numerator /2;
    }

2 个答案:

答案 0 :(得分:2)

顺便说一句。最短的gcd方法就是这个。

static int gcd(int a, int b) {
    if(b == 0) return a;
    else return gcd(b, a%b);
}

它比使用减法要快得多。

答案 1 :(得分:0)

我首先要说你需要更多的Java练习。你的代码甚至没有关闭...

if (numerator != 0) 
    {
        int common = gcd(Math.abs(numerator), denominator); // Gets a common denominator and uses abs to  make sure it is positive.
        numerator = numerator / common; // Divides top number by common #
        denominator = denominator / common; // Divides bottom number by common #
    }

你需要import java.util.Math;,你必须像我一样得到GCD。要获得GCD,请说

while (num1 != num2)
    {
        if (num1 > num2)
        {
            num1 = num1 - num2;
        }
        else
        {
            num2 = num2 - num1;
        }
    }
    return num1;

我希望这对你有意义。你理解它之后并不太难。如果您还有其他问题,请与我们联系!