将真分数分解为埃及分数

问题描述:

 现输入一个真分数,请将该分数分解为埃及分数。

 

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值