使用java简化分数

use*_*630 0 java rational-number numbers fractions

嘿伙计们我在这里工作SW我有点需要帮助,你看我们需要制定一个方法,我们将简化分数.任何想法怎么样?这是我现在的代码(不介意dvalue方法它已经finsih我需要的只是简化方法)

public class Fraction {

    public int num;
    public int den;
    public double dValue;

    public void display()
    {
        System.out.println("Numerator: "+num);
        System.out.println("Denominator: "+den);
    }

    public double dValue()
    {
        dValue = (double)num/den;
        return dValue;
    }


}
Run Code Online (Sandbox Code Playgroud)
public class FractionTest {

        public static void main(String args[])
        {
            Fraction f = new Fraction();
            f.num = 50;
            f.den = 100;
            f.display();

            double d = f.dValue();
            System.out.println(d);
        }   
}
Run Code Online (Sandbox Code Playgroud)

小智 6

如果您可以执行以下步骤,则可以轻松简化分数:

  1. 找到num和den的gcd,所以你有gcd = GCDFind(gcd,num);
  2. 现在,如果gcd == 1,那么分数不能简化(它已经是简化形式).
  3. 如果gcd> 1,那么newNum = num/gcd; 和newDen = den/gcd;

这就是我想要的一切.

gcd代表Greates Common Divisor ...代码很容易找到,我只是用谷歌搜索JavaScript实现这种方式在几秒钟内完成:http://www.calculla.com/en/fraction