埃及分数指的是分子都为1的真分数。

当输入一个真分数时,可分为以下几种情况(为了便于求解这个问题,我们用a表示分子,b表示分母):

  1. 当a为1时,可以直接输出结果
  2. 当a能够被b整除时,可以直接输出结果,即1/(b/a)
  3. 当a=3且b为偶数时,可以直接输出分解的结果:1/(b/2)+1/b
  4. 当a不能被b整除时,需要将a/b分解为一个埃及分数和一个非埃及分数:一个埃及分数为1/(b/a+1),另一个非埃及分数为(a*c-b)/(b*c),这里的c=b/a+1

下面是python实现的过程:

if __name__ == '__main__':fenzi = 50 # 表示分子fenmu = 88 # 表示分母print("{}/{}".format(fenzi, fenmu), end="=")i = 3while(i):if fenzi == 1:print("1/{}".format(fenmu))breakelif fenmu % fenzi == 0:print("1/{}".format(int(fenmu/fenzi)))breakelif fenmu % 2 == 0 and fenzi == 3:print("1/{} + 1/{}".format(int(fenmu/2), fenmu), end="+")breakelse:value = int(fenmu/fenzi) + 1fenzi = fenzi * value - fenmu #产生新的分子fenmu = value * fenmu #产生新的分母print("1/{}".format(value), end="+")i -= 1pass

将一个真分数分解为埃及分数相加的形式相关推荐

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

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

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

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

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

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

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

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

  5. C语言——贪心算法。设计一个算法,把一个真分数表示为埃及分数之和的形式。所谓埃及分数是指分子为1的分数。例如3/5=1/2+1/10

    解题思路: 最先想到的是把原数对自己的最大埃及数做减法,直到减完为止. 1. 找最大埃及分数 要找出b/a的最大埃及数(a>b).利用倒数即可推出最大埃及数 a/b = d-k(余数) a=d ...

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

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

  7. python埃及分数_趣学Python算法100例

    算法源于生活,又可以改变生活.本书专为Python初学者量身打造,内容涵盖Python编程的基础知识和常用算法,是初学算法设计与实现的不错选择. 本书从一些经典算法出发,介绍了100个趣味编程实例.这 ...

  8. 埃及分数问题c语言,贪心算法之埃及分数问题(附c++源代码)

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

  9. 贪心:将真分数用埃及分数之和表示

    任务描述 本关任务:设计一个算法,把一个真分数 F 表示为埃及分数之和的形式. 编程要求 请在右侧编辑器Begin-End处补充代码,完成本关任务,注意需要学生自己获取真分数再进行编程. 测试说明 平 ...

  10. 真分数转埃及分数的和 (贪心)

    分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数. 例如6/7 = 1/2+1/3+1/42 题目分析:设原分数为a/b,b除a得到c,c+1作 ...

最新文章

  1. 前锋 php 杭州,前锋php培训
  2. 在tensorflow2.0下遇到1.x版本中占位符不兼容问题 tf.placeholder() is not compatible with eager execution的解决方法
  3. mysql-自动备份数据库服务
  4. linux io映射,【原创】Linux 文件系统移植全解密以linux-2.6.35内核源码为例说明一下IO静态映射的过程...
  5. 洛谷-P3203 弹飞绵羊 分块
  6. 信息学奥赛一本通 1924:【03NOIP普及组】栈 | 洛谷 P1044 [NOIP2003 普及组] 栈
  7. HCIBench_2.3.1部署_VSAN_测试工具
  8. Aruba 云服务代金券
  9. eclipse Maven搭建SSH框架
  10. (cocos2dx-3.3)3D坐标系
  11. bzoj 4571 美味 —— 主席树
  12. Axure RP 9安装与使用
  13. 中国方言地图的总结与展望
  14. mac 设置阿里企业邮箱
  15. 微码汇:从O2O的前世今生看接下来该如何“O”
  16. 安装Microsoft-project 2016
  17. 小程序预览报错60001,fail error:109
  18. python_爬虫 16 Scrapy框架之(二)快速入门
  19. 预习计算机组成原理之计算机的运算方法——笔记4
  20. 在k8s中通过CoreDNS进行域名解析的其中三种方法

热门文章

  1. Guarded Suspension Pattern
  2. http://blog.csdn.net/lnb333666/article/details/7772344
  3. python+opencv入门-基于Harr特征的人脸检测分类器
  4. vue同一项目搭建PC端和移动端
  5. SpringBoot之SpringData JPA的基本使用
  6. html编辑个人信息页面,编辑个人信息.html
  7. Java内存模型中的happen-before是什么?
  8. 苹果笔记本什么系统_怎么把苹果笔记本系统改为win7系统?
  9. 苹果电脑怎么更换计算机模式,图文详解苹果电脑如何切换成windows系统
  10. SQL应用·:用SQL分析供应商营业额