一、题目

描述
分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。
注:真分数指分子小于分母的分数,分子和分母有可能gcd不为1!
如有多个解,请输出任意一个。

输入描述:
输入一个真分数,String型

输出描述:
输出分解后的string

二、代码

/**
数学家斐波那契提出的一种求解***分数的贪心算法,准确的算法表述应该是这样的:
设某个真分数的分子为a,分母为b;
把c=(b/a+1)作为分解式中第一个***分数的分母;
将a-b%a作为新的a;
将b*c作为新的b;
如果a等于1,则最后一个***分数为1/b,算法结束;
如果a大于1但是a能整除b,则最后一个***分数为1/(b/a),算法结束;
否则重复上面的步骤。
**/
import java.util.*;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);while(in.hasNext()){String res = "";String[] arr = in.nextLine().split("/");String pre = "";int a = Integer.valueOf(arr[0]);int b = Integer.valueOf(arr[1]);while (true){int c = b/a+1;res += "1/";res += c;a = a - b % a;b = b * c;res += "+";if (a == 1){res += "1/";res += b;break;}else if (a > 1 && b % a == 0){res += "1/";res += b/a;break;}}System.out.println(res);}}
}

HJ82 将真分数分解为埃及分数 —— 华为机考练习题相关推荐

  1. 将真分数分解为埃及分数(斐波那契算法步骤)Java

    package com.patience.interview.huawei;import java.util.Scanner;/*** 将真分数分解为埃及分数* @author Green.Gee* ...

  2. python埃及分数_C语言将真分数分解为埃及分数代码解析

    问题描述 现输入一个真分数,请将该分数分解为埃及分数. 问题分析 真分数:分子比分母小的分数,叫做真分数.真分数的分数值小于1.如1/2,3/5,8/9等. 分子是1的分数,叫单位分数.古代埃及人在进 ...

  3. 华为机试HJ82:将真分数分解为埃及分数

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将 ...

  4. 华为OJ平台——将真分数分解为埃及分数

    题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数.如:8/11 = 1/2+1/5+1/55+1/110. 输入: 输入一个真分数, ...

  5. HJ66 配置文件恢复 —— 华为机考练习题

    一.题目 为了简化输入,方便用户,以"最短唯一匹配原则"匹配(注:需从首字母开始进行匹配): 1.若只输入一字串,则只匹配一个关键字的命令行.例如输入:r,根据该规则,匹配命令re ...

  6. 「解析」牛客网-华为机考企业真题 81-108

    又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...

  7. 华为机考108题(c++)(81-90)

    HJ81 字符串字符匹配 描述 判断短字符串S中的所有字符是否在长字符串T中全部出现. 请注意本题有多组样例输入. 数据范围:1≤len(S),len(T)≤200 进阶:时间复杂度:O(n),空间复 ...

  8. 华为机考HJ13句子逆序C语言弱智解法

    华为机考HJ13句子逆序C语言弱智解法 句子逆序C语言低端解法,易于理解. 1.收数据老生常谈. 2.将句子全部逆序. 3.将单词正序. (这里有一个bug,最后一个词(原句子第一个词)总是收不到,所 ...

  9. 华为机考HJ7取近似值

    华为机考HJ7取近似值 只有小数点后一位,所以扩大十倍,让小数点后的数都为0. 然后强制转换成整型,不会影响精度. 强制转换原数的数据类型,无论原数据是什么,都只保留整数部分. 将扩大后的数对10求余 ...

  10. 华为机考HJ2计算字符个数

    华为机考HJ2计算字符个数 gets();每次收一行字符. getchar();每次收一个字符. 两个都存储后用第二个在第一个串中检索. 大小写的问题用大小写的ASCII码差值32解决. 暴力破解,没 ...

最新文章

  1. mysql error1045 yes_MySQLERROR1045(28000)错误的解决办法_MySQL
  2. 搭建Android上的服务器 “实现隔空取物”
  3. I/O多路复用——select
  4. Volley简单学习使用五—— 源代码分析三
  5. docker 分布式管理群集_Coolpy7分布式物联网MQTT集群搭建
  6. java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)
  7. 配置UIAutomator中的ANT环境报不是内部命令与外部命令
  8. MPICH C语言接口函数说明
  9. PHP的学习--在sublime中使用XDebug(Ubuntu)
  10. 大数据如何应用在食品追溯管理
  11. spark sortBy sortByKey实战详解
  12. 如何获得微信小游戏源码
  13. html在线上传图片,kindeditor 图片上传
  14. java歌词解析器_Java LRC 歌词解析
  15. Java HTTPS客户端如何处理证书
  16. matlab c盘空间,手动清理C盘空间
  17. C++根据三个点坐标计算夹角
  18. Your Command Line Tools are too outdated
  19. 隧道联系测量高程传递水准数据处理流程及说明
  20. 移动新魔百和M302A刷机固件 ty 2G+8G版s905l3线刷包及教程

热门文章

  1. 什么是股票交易接口?
  2. 力扣刷题 DAY_85 贪心
  3. vue.esm.js:632 [Vue warn]: Unknown custom element: <router-link> - did you register the component co
  4. html怎么直接修改,如何编辑运行HTML网页文件(HTML编辑工具使用介绍)
  5. 数据结构学习笔记-常用十大算法
  6. 两个案例带你搞定JBoss Marshalling编解码在Netty中的应用
  7. 逻辑漏洞之任意密码重置
  8. Kafka原理介绍+安装+基本操作
  9. python数列求和,怎样在python求和
  10. WIN7+LR11+IE8无法打开的问题解决方法