Leetcode 365. Water and Jug Problem

可以想象有一个无限大的水罐,如果我们有两个杯子x和y,那么原来的问题等价于是否可以通过往里面注入或倒出水从而剩下z。

z =? m*x + n*y

如果等式成立,那么z%gcd(x,y) == 0。

 1 class Solution(object):
 2     def canMeasureWater(self, x, y, z):
 3         """
 4         :type x: int
 5         :type y: int
 6         :type z: int
 7         :rtype: bool
 8         """
 9         if z == 0 or (z<= x+y and z%self.gcd(x,y) == 0):
10             return True
11         else:
12             return False
13             
14     def gcd(self, x, y):
15         while y != 0:
16             (x, y) = (y, x % y)
17         return x

 

posted @ 2017-01-05 14:00  lettuan  阅读(88)  评论(0编辑  收藏  举报