问题描述
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的内置方法之一的情况下以简化形式获取分数部分。
解决方法
您可以开发一种方法来查找 r
和 n
的 GCD:
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 };