题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
http://www.nowcoder.com/practice/e0480b2c6aa24bfba0935ffcca3ccb7b
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
String res = new String();
String[] str = in.next().split("/");
int[] s = {Integer.parseInt(str[0]),
Integer.parseInt(str[1])};
dfs(s, res);
}
}
public static void dfs(int[] s, String res){
if(s[0]==1||s[1]%s[0]==0){
res += 1+"/"+ s[1]/s[0];
System.out.println(res);
return;
}
if(s[1]%(s[0]-1)==0){
res += 1+"/"+ s[1]/(s[0]-1) + "+";
s[0] = 1;
}else{
int i = s[1]/s[0]+1;
res += 1+"/"+ i + "+";
s[0] = s[0]*i-s[1];
s[1] = s[1]*i;
}
dfs(s, res);
}
}
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
String res = new String();
String[] str = in.next().split("/");
int[] s = {Integer.parseInt(str[0]),
Integer.parseInt(str[1])};
dfs(s, res);
}
}
public static void dfs(int[] s, String res){
if(s[0]==1||s[1]%s[0]==0){
res += 1+"/"+ s[1]/s[0];
System.out.println(res);
return;
}
if(s[1]%(s[0]-1)==0){
res += 1+"/"+ s[1]/(s[0]-1) + "+";
s[0] = 1;
}else{
int i = s[1]/s[0]+1;
res += 1+"/"+ i + "+";
s[0] = s[0]*i-s[1];
s[1] = s[1]*i;
}
dfs(s, res);
}
}