擅长:python、mysql、java
<p>您应该规范化存储值的方式。2 3/8实际上是19/8。一旦你这么做了,数学就变得微不足道了。输入和输出使用混合数,但内部使用纯分数</p>
<pre><code>class Ruler:
def __init__(self, inches, n, d):
self.n = inches*d + n
self.d = d
def __str__(self):
inches, n = divmod(self.n, d)
return "{} {}/{}".format(inches, n, self.d)
def __mul__(self, other):
return Ruler(0, self.n * other.n, self.d * other.d)
</code></pre>