高分悬赏:Java语言怎么化简一个分数,直到转换为真分数,代码的编写

高分悬赏:Java语言怎么化简一个分数,直到转换为真分数,代码的编写

找到一个类似化简真分数的案例,可以参考看看:https://bbs.csdn.net/topics/392553992

//分数a/b
//最大公约数
public int GCD(int a,int b) {
        if(b==0)
            return a;
        else
            return GCD(b,a%b);
}
//main函数
int a = 24; 
int b = 36;
int c = GCD(a, b);
a /= c;
b /= c;
//如果是假分数
z = a / b;     //这是整数部分
a = a % b;     //现在a<b了

除以最大公约数就行了:

public static void main(String []args) {
String expr = "99/66";
String[] temp = expr.split("/");
int n = Integer.parseInt(temp[0]);
int d = Integer.parseInt(temp[1]);
int gcd = GCD(d,n);
n = n/gcd;
d = d/gcd;
System.out.println(n + "/" + d);
}
public static int GCD(int a, int b) {
int min=(a < b ? a : b);
for (int i = min;i >= 1;i--) if (a % i == 0 && b % i == 0) return i;
return 1;
}