首页 > 解决方案 > 打印简化的除法形式

问题描述


   public static void main(String[] args) {
      
      
      int[] y = division(230,6);
      System.out.println(y[0] + " " + y[1] + "/" + y[2])
      
   }

   private static int[] division(int nominator, int denominator) {
         int k = nominator / denominator;
         int r = nominator % denominator;
         int n = denominator;
         int[] arr = { k, r, n };
         return arr;
      }

}

230/6 的除法将给我 38 + 2/6。我想得到 38 + 1/3,我想要简化形式的分数部分。我不知道如何在java中做到这一点。是否有任何简单的方法可以在不使用 java.util 的内置方法之一的情况下以简化形式获得分数部分。

标签: javaeclipsedivision

解决方案


您可以开发一种方法来找到 和 的rGCD n

private static int findGCD(int num1, int num2) {
    while (num1 != num2) {
        if(num1 > num2)
            num1 = num1 - num2;
        else
            num2 = num2 - num1;
    }
    return num2;
}

在除法方法中,您可以添加以下代码:

int gcd = findGCD(r, n);

并更换

int[] arr = { k, r, n };

和 :

int[] arr = { k, r/gcd, n/gcd };

推荐阅读