import java.util.Scanner; /*  *  标题:埃及分数     古埃及曾经创造出灿烂的人类文明,他们的分数表示却很令人不解。古埃及喜欢把一个分数分解为类似: 1/a + 1/b 的格式。     这里,a 和 b 必须是不同的两个整数,分子必须为 1     比如,2/15 一共有 4 种不同的分解法(姑且称为埃及分解法):         1/8 + 1/120         1/9 + 1/45         1/10 + 1/30         1/12 + 1/20     那么, 2/45 一共有多少个不同的埃及分解呢(满足加法交换律的算同种分解)? 请直接提交该整数(千万不要提交详细的分解式!)。  [思路]  由于埃及分数都是以1为分子的,因此,假设最初的分数为A/B,那么如果A能够整除B,则埃及数为1/(B/A)  如果不能够整除时,能够从其中分离出来的最大的分子为1的分数就是1/((A/B)+1)  以2/7为例,能够从中分离出来的最大的分子为1的数是1/(7/2+1) = 1/4  分离出此数之后,再计算出剩下的余数,重复进行以上的判断即可    [算法]  1. 要求用户输入分子a,分母b  2. 判断a是否能够整除b      是: 将a置为1,b置为b/a  3. 判断a是否为1              是:               直接输出a/b, 退出循环             否:                 得到小于它的最大的埃及分数的分母 C = A / B + 1                       得到余数的分子:  A*C-B                 得到余数的分母:  B*C  4. 返回2继续循环    [运行结果]  请输入一个分数的分子 2 请输入一个分数的分母 45 2/45=1/23+1/1035 可分解为埃及数的个数为: 2  * */ public class EmptyNumber {     public static void main(String[] args) {         /*读入用户输入的分子与分母*/         System.out.println("请输入一个分数的分子");         Scanner scanner = new Scanner(System.in);         int fenZi = scanner.nextInt();         System.out.println("请输入一个分数的分母");         scanner = new Scanner(System.in);         int fenMu = scanner.nextInt();                  /*设置埃及数的计数器*/         int total = 0;                  System.out.print(fenZi+"/"+fenMu+"=");         while(true){             /*如果分子能够整除分母,则对原分数进行约分 , 保持分子为1*/             if(fenMu%fenZi==0)                 { fenMu = fenMu / fenZi;fenZi = 1;}                          /*分子为1时,直接输出结果,中止循环*/             if(fenZi==1)                 {                   System.out.print(fenZi+"/"+fenMu);                   total++;                   break;                 }             else                {                 /*保留原有的分子与分母的值*/                 int m = fenMu;                 int z = fenZi;                                  /*得到比当前分数小的最大埃及分数的分母,并输出找到的最大埃及数*/                 int num = fenMu / fenZi + 1;                 System.out.print(1+"/"+num+"+");                 total++;                 /*得到余数的分子与分母,继续循环*/                 fenMu = m * num;                 fenZi = z*num - m;                }                      }         System.out.println();        System.out.println("可分解为埃及数的个数为: "+total);               } }

埃及分数怎么计算java_[蓝桥杯][java]埃及分数解法相关推荐

  1. 埃及分数怎么计算java_贪心算法之埃及分数问题(附c++源代码)

    感谢博主提供算法思路http://blog.csdn.net/tterminator/article/details/50927393 博主的是java代码,在这里写个c++代码,只是牛客网中有些很无 ...

  2. 蓝桥分酒java_[蓝桥杯][java]海盗分酒

    /*  * 有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的,再次重复......   * 直到开了第4瓶酒,坐着的 ...

  3. 2n皇后的问题java_蓝桥杯java 基础练习 2n皇后问题

    问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...

  4. 2015年 第6届 蓝桥杯 Java B组 省赛解析及总结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  5. 2014年 第5届 蓝桥杯 Java B组 省赛解析及总结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  6. 2021年第十二届蓝桥杯 Java B 组省赛填空题解析

    第十二届蓝桥杯 Java B 组省赛填空题解析 第一题 [问题描述] 已知大写字母 AAA 的 ASCIIASCIIASCII 码值为 656565, 那么大写字母 LLL 的 ASCIIASCIIA ...

  7. 蓝桥杯Java大学C组近三年真题解析(三)——暴力、模拟题

    目录 第十届 求和 题目 题解 代码 矩形切割 题目 题解一 代码 代码 代码 题解二 代码 不同子串 题目 题解 代码 质数 题目 题解 代码 最大降雨量 题目 题解 代码 旋转 题目 题解 代码 ...

  8. 蓝桥杯Java大学C组近三年真题解析(二)——暴力、模拟题

    目录 第十一届 约数个数 题目 题解 代码 代码 寻找 2020 题目 题解 代码 代码 跑步锻炼 题目 题解 代码 代码 代码 灵活使用Excel 平面分割 题目 题解 代码 代码 七段码 题目 ​ ...

  9. 2015年 第06届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

最新文章

  1. 资料分享:推荐一本《简单粗暴TensorFlow 2.0》开源电子书!
  2. 学会它,可以替你写100行 200行 300行……的代码
  3. 阿里云发布ECS磁盘加密,一键加密,业务0改动 1
  4. Ubuntu apt-get和pip源更换
  5. 在Linux下下载RPM包
  6. 小程序获取openid保存缓存吗_小程序获取openid踩坑
  7. BASE64学习小记
  8. count(1)与count(id)与count(*)效率,以及覆盖索引,索引下推
  9. php if k 1,PHP实现大数字格式化成K/M/B结尾的简短形式
  10. 【2019 NWERC - D 】Disposable Switches【最短路、单调栈、数学思维】
  11. java写小游戏代码可复制
  12. oracle学习札记94
  13. 微信公众平台 使用JS-SDK实现拍照上传功能
  14. 腾讯云轻量服务器搭建,腾讯云轻量服务器配置系统镜像自定义建站及安全组配置...
  15. 洛谷题解:P1007 独木桥
  16. CSDN写文章MarkDown用到的表情包收集(转自Github)
  17. 选择排序——C语言代码
  18. ffmpeg学习 源代码编译、英伟达硬件加速
  19. GeoTools,JTS和GeoAPI -- (学习GIS【3】)
  20. pip install tkinter:ERROR: Could not find a version that satisfies the requirement tkinter

热门文章

  1. 先到先服务调度算法(C++实现)
  2. flowlayout java_java中FlowLayout的使用方法
  3. ZView2软件使用说明
  4. 对于目标文件系统,文件过大无法复制到u盘:
  5. linux修改用户中文文件夹为英文
  6. fis3配置(附package.json)
  7. Homestead环境搭建及简介
  8. homestead 安装mysql8_Homestead 安装其它的PHP版本
  9. 8个步骤让你远离服务器被黑
  10. 使用 xlsx 下载 xlsx 文件