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);
}
}
}
