华为OJ平台——将真分数分解为埃及分数
题目描述:
分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。
输入:
输入一个真分数,String型
输出:
输出分解后的string
思路:
参考http://blog.csdn.net/hnust_xiehonghao/article/details/8682673中的贪心算法求解
1 import java.util.Scanner; 2 3 public class EgyptFraction { 4 5 public static void main(String[] args) { 6 Scanner cin = new Scanner(System.in) ; 7 String in = cin.nextLine() ; 8 cin.close() ; 9 10 String [] strs = in.split("/") ; 11 int numerator = Integer.parseInt(strs[0]) ; 12 int denominator = Integer.parseInt(strs[1]) ; 13 14 System.out.println(resolved(numerator,denominator)) ; 15 16 } 17 18 private static String resolved(int numerator, int denominator) { 19 int a = numerator ; 20 int b = denominator ; 21 22 int q = b/a ; 23 int r = b%a ; 24 StringBuffer res = new StringBuffer() ; 25 while(a != 1){ 26 if(r == 0){ 27 a = 1 ; 28 b = q ; 29 continue ; 30 }else{ 31 res.append(1); 32 res.append('/'); 33 res.append(q + 1); 34 res.append('+'); 35 36 a = a - r ; 37 b = b*(q+1) ; 38 q = b/a ; 39 r = b%a ; 40 } 41 } 42 43 if(res.length() != 0){ 44 res.append(1) ; 45 res.append('/') ; 46 res.append(q) ; 47 }else{ 48 res.append(1) ; 49 res.append('/') ; 50 res.append(q) ; 51 } 52 53 return res.toString() ; 54 55 } 56 57 }
Code
转载于:https://www.cnblogs.com/mukekeheart/p/5628190.html
华为OJ平台——将真分数分解为埃及分数相关推荐
- 将真分数分解为埃及分数(斐波那契算法步骤)Java
package com.patience.interview.huawei;import java.util.Scanner;/*** 将真分数分解为埃及分数* @author Green.Gee* ...
- python埃及分数_C语言将真分数分解为埃及分数代码解析
问题描述 现输入一个真分数,请将该分数分解为埃及分数. 问题分析 真分数:分子比分母小的分数,叫做真分数.真分数的分数值小于1.如1/2,3/5,8/9等. 分子是1的分数,叫单位分数.古代埃及人在进 ...
- 华为机试HJ82:将真分数分解为埃及分数
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将 ...
- 华为OJ平台题目-砝码重量
本人邮箱-> kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://github.com/kc ...
- C语言——贪心算法。设计一个算法,把一个真分数表示为埃及分数之和的形式。所谓埃及分数是指分子为1的分数。例如3/5=1/2+1/10
解题思路: 最先想到的是把原数对自己的最大埃及数做减法,直到减完为止. 1. 找最大埃及分数 要找出b/a的最大埃及数(a>b).利用倒数即可推出最大埃及数 a/b = d-k(余数) a=d ...
- 华为OJ平台——放苹果(典型整数划分问题)
题目描述: 输入m,n,分别表示苹果数与盘子的总数,要求输出苹果放在n个盘子的方法总数(注意511和151是一种情况),例如输入 7 3 输出8((7),(6,1),(5,2),(4,3),(5,1, ...
- 华为oj平台的新网址
http://117.78.7.99/exam/camLogin.jsp 转载于:https://www.cnblogs.com/hewenwu/p/3981391.html
- 华为OJ平台——整形数组合并
题目描述: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 输入: 输入说明,按下列顺序输入: 1 输入第一个数组的个数 2 输入第一个数组的数值 3 输入第二个数组的个数 4 输入第二个数组的数 ...
- 华为OJ平台题目:(练习用)挑7
描述 输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数 知识点 循环 运行时间限制 0M 内存限制 0 输入 一个正整数N.(N不大于 ...
最新文章
- Xml,XPath,XSLTxue 学习方法
- 修改input的text 通过jquery的html获取值 未变化
- 网易互客敏捷交付实践
- 阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则
- 《软件需求分析(第二版)》第 4 章——需求分析员的职责 重点部分总结
- error: Please reinstall the libcurl distribution - easy.h should be in curl-dir/include/curl/
- vSAN 设计、部署、运维最佳实践 | 资料
- python导出excel数据表中追加数据_python pandas在已存在的excel中追加数据
- JavaScript之继承(原型链)
- The car's gossip
- hihocoder 网易游戏2016实习生招聘在线笔试 解题报告
- LaTex实现中英文混排
- 动态的渐变色网页背景
- NVL和NVL2有什么区别,NULLIF 的使用.
- 悲观锁、乐观锁、自旋锁和读写锁
- 出彩的PPT封面如何设置?这些例子建议收藏
- 本题要求实现一个函数,对给定平面任意两点坐标(x 1​ ,y 1​ )和(x 2​ ,y 2​ ),求这两点之间的距离。
- 新版标准日本语中级_第二十八课
- 学习笔记 | 2023 AAAI 对抗性权值扰动改善图神经网络的泛化性能
- 计算机专业毕业祝福语,祝考试成功的60句祝福语
热门文章
- 用计算机画图截图图片,如何使用系统自带画图工具截图?电脑画图工具截图操作详解...
- python生成矩阵导出excel_Python xlwt导出excel完整版
- Android 天气APP(二十三)增加灾害预警、优化主页面UI
- 文末送书|用Pandas分析了75w多条数据,揭秘美国选民的总统喜好!
- 论文写作——参考文献浅谈
- C语言、C++与Java分别实现猜数字小游戏
- Mysql sixth week
- Java读取word模板并在模板相关位置插入数据和表格
- 【Globalmapper中文入门到精通系列实验图文教程】(附配套实验数据+中文汉化版安装包23+24,持续同步更新)
- 计算机转机械硬盘,机械硬盘空闲时却还狂转,到底为什么?