问题描述:
现输入一个真分数,请将该分数分解为埃及分数。
import java.util.Scanner;
public class Test {
/**
* 将真分数分解成埃及分数
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean flag=true;
int a,b,c;
String s="";
while(flag)
{
Scanner scan=new Scanner(System.in);
System.out.println("请输入分子:");
a=scan.nextInt();
System.out.println("请输入分母");
b=scan.nextInt();
if(a>b)
{
System.out.println("输入的不是真分数,请重新输入!");
}else{
flag=false;
for(;;)
{
if(b%a==0) //若分子能整除分母
{
c=b/a;
a=1;
}else{ //若分子不能整除分母,则分离出一个分母为b/a+1的埃及分数
c=b/a+1;
}
if(a==1){
s=s+"1/"+c+" ";
break;
}else{
s=s+"1/"+c+" ";
a=a*c-b;
b=b*c;
if(a==3&&b%2==0)
{
s+="1/"+b/2+" "+"1/"+b; //最后两个埃及分数
break;
}
}
}
}
System.out.println(s);
}
}
}