HJ82 将真分数分解为埃及分数| 题解
设某个真分数的分子为a,分母为b;
把c=(b/a+1)作为分解式中第一个埃及分数的分母;
将a-b%a作为新的a;
将b*c作为新的b;
如果a等于1,则最后一个埃及分数为1/b,算法结束;
如果a大于1但是a能整除b,则最后一个埃及分数为1/(b/a),算法结束;
否则重复上面的步骤。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String[] nums = in.next().split("/"); long a = Integer.parseInt(nums[0]); long b = Integer.parseInt(nums[1]); StringBuilder res = new StringBuilder(); while (a != 0) { long c = b / a + 1; res.append("1/").append(c); a = a - b % a; b = b * c; res.append("+"); if (a == 1) { res.append("1/").append(b); break; } else if (a > 1 && b % a == 0) { res.append("1/").append(b / a); break; } } System.out.println(res); } } }