真分数分解为埃及分数

  • 真分数:分子小于分母
  • 埃及分数:分子数为1的真分数
    约定分数表示为a/b

** 但是注意,这两个算法给出来的结果并不是所有情况下都是相同! **

Example:
Input: 8/11
Output: 算法1: 1/2+1/5+1/37+1/4070 算法2: 1/2+1/5+1/55+1/110

算法一:基本,穷举

1、初始化i=2,分数为a/b
2、开始比较

  • if a=1, finish
  • if a/b>1/i: a/b=a/b-1/i, i=i+1, return 2
  • if a/b<1/i: i=i+1, return 2
# algorithm 1
def egypt(a,b):if a==1:return [b]i=1B=[]while a!=1:i+=1if a/b > 1/i:a,b = a*i-b, b*iB.append(i)B.append(b)return B
a,b=list(map(int,input().split('/')))
res=egypt(a,b)
res=['1/'+str(i) for i in res]
print('+'.join(res))

算法二:改进

1、初始化变量用来保存各个埃及分数的分母
2、while a!=1

  • if b%(a-1)=0: 分母为b//(a-1) and b
  • else: 分母为b//a + 1,更新分子分母
    if b%a=0, b=b//a, a=1
# Algorithm 2
a,b=list(map(int,input().split('/')))
res=[]
while a!=1:if b%(a-1)==0:res.append(b//(a-1))a=1else:q=b//ares.append(q+1)a = a-b%ab = b*(q+1)if b%a == 0:b = b//aa = 1
res.append(b)
res=['1/'+str(i) for i in res]
print('+'.join(res))

真分数分解为埃及分数Python3相关推荐

  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. 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. 真分数转埃及分数的和 (贪心)

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

  10. 贪心算法之埃及分数问题

    1.问题:给定一个分数,如7/8,我们可以把它表示为1/2 + 1/3 +1/24,埃及分数问题即把一个真分数表示为最少的埃及分数之和的形式,输入一个真分数把其分解为埃及分数之和. 2.设计思路:设分 ...

最新文章

  1. 官方 | Keras分布式训练教程
  2. 网络编程试卷选择解析
  3. WebGL之sprite精灵效果显式数字贴图
  4. CreateThread 和_beginthreadex区别
  5. 『Python × C++』函数传参机制学习以及对比
  6. android handler 的removeMessages的使用
  7. Linux环境变量PSI指什么,PSI 文件扩展名: 它是什么以及如何打开它?
  8. opencv运动目标跟踪预测_基于Opencv的运动目标的检测和跟踪.pdf
  9. leetcode —— 面试题 17.08. 马戏团人塔
  10. Eclipse中 Clean 的时候总是警告 org.apache.catalina.webresources.Cache backgroundProcess
  11. atitit.泛型编程总结最佳实践 vO99 java c++ c#.net php
  12. 在GIS中如何绘制胡焕庸线
  13. 计算机等级保护 备案,信息安全等级保护备案实施细则
  14. opencv C++图像/视频旋转 90度 180度 270度
  15. 解读《Superhuman AI for multiplayer poker》
  16. 高等代数 具有度量的线性空间(第10章)4 酉空间,酉变换,埃尔米特变换,正规变换
  17. 对一个注册页面编写测试用例
  18. springboot的登录拦截器的学习
  19. 实体店防盗,RFID技术作用巨大
  20. Rust学习笔记(13)——struct、Option和Box组合应用实现单向链表

热门文章

  1. stm32F1规避浮点运算
  2. 微信小程序 java nodejs校园自动点餐系统
  3. 为知笔记打不开 ziw 文件问题
  4. win8.1电脑显示器亮度按钮无法使用
  5. Compose | 一文理解神奇的Modifier
  6. matlab如何定义dmod函数,matlab中的dmod函数
  7. Lesson 40 Food and talk 进餐与交谈
  8. coreldraw梯形校正_CorelDRAW绘制等腰梯形的多种方法
  9. 108. 将有序数组转换为二叉搜索树
  10. 游戏服务器存储数据库选型