Java实现约分 发表于 2020-01-02 | 分类于 ---Java | 约分输入15/9输出5/3 1234567891011121314151617181920212223242526272829303132333435363738394041424344// 简单约分 static void t1(int x, int y) { //1. 取他们俩最小的数,作为`最大公因数`的上限 int min = (x < y) ? x : y; //2. 求最大公约数,从高往低除,都不余,则退出循环. int maxSubmultiple = 1; for (int i = min; i > 1; i--) { if (x % i == 0 && y % i == 0) { maxSubmultiple = i; break; } } //3. 再除以`最大公因数` System.out.println("输出: " + x / maxSubmultiple + "/" + y / maxSubmultiple); }// 优化约分static void t1_1(int x, int y) { int min = (x < y) ? x : y; int max = (x > y) ? x : y; if (max % min != 0) { min = min / 2 + 1; } int maxSubmultiple = 1; for (int i = min; i > 1; i--) { if (x % i == 0 && y % i == 0) { maxSubmultiple = i; break; } } System.out.println("输出: " + x / maxSubmultiple + "/" + y / maxSubmultiple); }