为了分。 public class Test { public static void main(String[] args) { String num1 = "2/3"; String num2 = "3/4"; System.out.println(add(num1, num2)); System.out.println(sub(num1, num2)); System.out.println(multi(num1, num2)); System.out.println(divi(num1, num2)); } // 找最大公约数 public static int getMaxCommonDivisor(int num1, int num2) { int min = num1 < num2 ? num1 : num2; for (int i = min; i > 1; i--) { if (num1 % i == 0 && num2 % i == 0) { return i; } } return 1; } // 加法 a/b+c/d = (a*d+b*c)/(b*d) public static String add(String num1, String num2) { int a = Integer.parseInt(num1.split("/")[0]); int b = Integer.parseInt(num1.split("/")[1]); int c = Integer.parseInt(num2.split("/")[0]); int d = Integer.parseInt(num2.split("/")[1]); int num3 = a * d + b * c; int num4 = b * d; int commonDivisor = getMaxCommonDivisor(num3, num4); return num3 / commonDivisor + "/" + num4 / commonDivisor; } //减法 a/b-c/d = (a*d-b*c)/(b*d) public static String sub(String num1, String num2) { int a = Integer.parseInt(num1.split("/")[0]); int b = Integer.parseInt(num1.split("/")[1]); int c = Integer.parseInt(num2.split("/")[0]); int d = Integer.parseInt(num2.split("/")[1]); int num3 = a * d - b * c; int num4 = b * d; int commonDivisor = getMaxCommonDivisor(num3, num4); return num3 / commonDivisor + "/" + num4 / commonDivisor; } //乘法 (a/b)*(c/d) = (a*c)/(b*d) public static String multi(String num1, String num2) { int a = Integer.parseInt(num1.split("/")[0]); int b = Integer.parseInt(num1.split("/")[1]); int c = Integer.parseInt(num2.split("/")[0]); int d = Integer.parseInt(num2.split("/")[1]); int num3 = a * c; int num4 = b * d; int commonDivisor = getMaxCommonDivisor(num3, num4); return num3 / commonDivisor + "/" + num4 / commonDivisor; } //除法 (a/b)/(c/d) = (a*d)/(b*c) public static String divi(String num1, String num2) { int a = Integer.parseInt(num1.split("/")[0]); int b = Integer.parseInt(num1.split("/")[1]); int c = Integer.parseInt(num2.split("/")[0]); int d = Integer.parseInt(num2.split("/")[1]); int num3 = a * d; int num4 = b * c; int commonDivisor = getMaxCommonDivisor(num3, num4); return num3 / commonDivisor + "/" + num4 / commonDivisor; } }
public class Test {
public static void main(String[] args) {
String num1 = "2/3";
String num2 = "3/4";
System.out.println(add(num1, num2));
System.out.println(sub(num1, num2));
System.out.println(multi(num1, num2));
System.out.println(divi(num1, num2)); } // 找最大公约数
public static int getMaxCommonDivisor(int num1, int num2) {
int min = num1 < num2 ? num1 : num2;
for (int i = min; i > 1; i--) {
if (num1 % i == 0 && num2 % i == 0) {
return i;
}
}
return 1;
} // 加法 a/b+c/d = (a*d+b*c)/(b*d)
public static String add(String num1, String num2) {
int a = Integer.parseInt(num1.split("/")[0]);
int b = Integer.parseInt(num1.split("/")[1]);
int c = Integer.parseInt(num2.split("/")[0]);
int d = Integer.parseInt(num2.split("/")[1]);
int num3 = a * d + b * c;
int num4 = b * d;
int commonDivisor = getMaxCommonDivisor(num3, num4);
return num3 / commonDivisor + "/" + num4 / commonDivisor;
}
//减法 a/b-c/d = (a*d-b*c)/(b*d)
public static String sub(String num1, String num2) {
int a = Integer.parseInt(num1.split("/")[0]);
int b = Integer.parseInt(num1.split("/")[1]);
int c = Integer.parseInt(num2.split("/")[0]);
int d = Integer.parseInt(num2.split("/")[1]);
int num3 = a * d - b * c;
int num4 = b * d;
int commonDivisor = getMaxCommonDivisor(num3, num4);
return num3 / commonDivisor + "/" + num4 / commonDivisor;
}
//乘法 (a/b)*(c/d) = (a*c)/(b*d)
public static String multi(String num1, String num2) {
int a = Integer.parseInt(num1.split("/")[0]);
int b = Integer.parseInt(num1.split("/")[1]);
int c = Integer.parseInt(num2.split("/")[0]);
int d = Integer.parseInt(num2.split("/")[1]);
int num3 = a * c;
int num4 = b * d;
int commonDivisor = getMaxCommonDivisor(num3, num4);
return num3 / commonDivisor + "/" + num4 / commonDivisor;
}
//除法 (a/b)/(c/d) = (a*d)/(b*c)
public static String divi(String num1, String num2) {
int a = Integer.parseInt(num1.split("/")[0]);
int b = Integer.parseInt(num1.split("/")[1]);
int c = Integer.parseInt(num2.split("/")[0]);
int d = Integer.parseInt(num2.split("/")[1]);
int num3 = a * d;
int num4 = b * c;
int commonDivisor = getMaxCommonDivisor(num3, num4);
return num3 / commonDivisor + "/" + num4 / commonDivisor;
}
}