Python求分数的加减法
2017-07-14 21:25
585 查看
使用Python编写分数的加减法
基本概念1.1 最大公约数与最小公倍数
1.1.1 最大公约数(gcd):
较大的数除较小的数,得到整型余数
较小的数除以余数
最终得到0,返回另一个数
1.1.2 最小公倍数(lcm):
lcm=a*b/gcd(a,b)
1.2 最小公倍数与最大公约数类
#目的求lcm class Rational1(object): def __init__(self):#初始化程序 pass def gcd(a,b):#判断最大公约数 if not a > b: a,b = b,a while b != 0 : remider = a%b a,b = b,remider print("%s" %a) return a def lcm(a,b):#返回最小公倍数 lcm = a*b /Rational1.gcd(a,b) return lcm class Rational(object):#以1/3,3/5为例,输出加法 #初始化类 def __init__(self,numer,denom = 1): print("in constuctor") self.numer = numer self.deom = denom def __str__(self): print("in str") return str(self.numer) + "/" + str(self.deom) def __repr__(self): print("in repr") return self.__str__() #定义分数的加法 def __add__(self, f): print(" in add") thelcm = int(Rational1.lcm(self.deom,f.deom)) numeratorSum = int((thelcm/self.deom*self.numer)+(thelcm/f.deom*f.numer)) return Rational(numeratorSum,thelcm) #定义分数的减法 def __sub__(self, f): print("in sub") thelcm = Rational1.lcm(self.deom,f.deom) numeratorSub = (thelcm/self.deom*self.numer)-(thelcm/f.deom*f.numer) return Rational(numeratorSub,thelcm) onehalf = Rational(1,3) threefive = Rational(3,5) thesum = onehalf + threefive print(thesum)
相关文章推荐
- 分数加减法
- poj3979 分数加减法
- 用python 在输入的列表里 以分数筛选出 第一名 与 第二名- 急
- 鬼谷分数2-99,和给庞涓,积给孙膑. python 程序实现
- 分数加减法
- nyoj 分数加减法
- 南阳理工:分数加减法
- 分数加减法
- [LeetCode] Fraction Addition and Subtraction 分数加减法
- python3+PyQt5实现自定义分数滑块部件
- python爬虫:爬取猫眼电影(分数的处理和多线程)
- NYOJ-111 分数加减法
- POJ 3979 分数加减法【数学讨论题】
- NYoj-分数加减法
- 3979 分数加减法
- nyoj 分数加减法
- POJ-3979-分数加减法(分数运算)
- nyoj-111-分数加减法
- 分数加减法
- 分数加减法