接口说明:
/*
功能: 将分数分解为埃及分数序列
输入参数:
String pcRealFraction:真分数(格式“8/11”)
返回值:
String pcEgpytFraction:分解后的埃及分数序列(格式“1/2+1/5+1/55+1/100”)
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";
while ((input = br.readLine()) != null) {
ConvertRealFractToEgpytFract(input);
}
}
public static String ConvertRealFractToEgpytFract(String pcRealFraction) {
String[] parts = pcRealFraction.split("/");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
StringBuilder result = new StringBuilder();
int c = 0;
while (a != 1) {
if (b % (a - 1) == 0) {
result.append("1/").append(b / (a - 1)).append('+');
a = 1;
} else {
c = b / a + 1;
result.append("1/").append(c).append('+');
a = a * c - b;
b = c * b;
if (b % a == 0) {
b = b / a;
a = 1;
}
}
}
result.append("1/").append(b);
System.out.println(result);
return result.toString();
}
}import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";
while ((input = br.readLine()) != null) {
ConvertRealFractToEgpytFract(input);
}
}
public static String ConvertRealFractToEgpytFract(String pcRealFraction) {
String[] parts = pcRealFraction.split("/");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
StringBuilder result = new StringBuilder();
int c = 0;
while (a != 1) {
if (b % (a - 1) == 0) {
result.append("1/").append(b / (a - 1)).append('+');
a = 1;
} else {
c = b / a + 1;
result.append("1/").append(c).append('+');
a = a * c - b;
b = c * b;
if (b % a == 0) {
b = b / a;
a = 1;
}
}
}
result.append("1/").append(b);
System.out.println(result);
return result.toString();
}
}
1200

被折叠的 条评论
为什么被折叠?



