窝窝头传奇 发表于 2021-4-30 10:10:30

求最大的公约数 为啥代码出错

class Solution():
    def gcd(self,x,y):
      x=self.x
      y=self.y
      while y:
            t=x%y
            x=y
            y=t
      return x
if __name__=='__main__':
    s=Solution()
    x=4
    y=12
    print('最大公约数:%d'%s.gcd(x,y))
   

窝窝头传奇 发表于 2021-4-30 10:11:06

大佬帮忙解释一下

wp231957 发表于 2021-4-30 10:37:06

class Solution():
    def __init__(self,x,y):
      self.x=x
      self.y=y

    def gcd(self,x,y):
      x=self.x
      y=self.y
      while y:
            t=x%y
            x=y
            y=t
      return x
if __name__=='__main__':
    x=4
    y=18
    s=Solution(x,y)
    print('最大公约数:%d'%s.gcd(x,y))

wp231957 发表于 2021-4-30 10:38:30

或者这样
class Solution():
    def gcd(self,x,y):
      while y:
            t=x%y
            x=y
            y=t
      return x
if __name__=='__main__':
    x=4
    y=18
    s=Solution()
    print('最大公约数:%d'%s.gcd(x,y))

wp231957 发表于 2021-4-30 11:16:08

其实这样也许更像类一些:
class Solution():
    def __init__(self,x,y):
      self.x=x
      self.y=y

    def gcd(self):
      x=self.x
      y=self.y
      while y:
            t=x%y
            x=y
            y=t
      return x
if __name__=='__main__':
    s=Solution(21,18)
    print('最大公约数:%d'%s.gcd())
页: [1]
查看完整版本: 求最大的公约数 为啥代码出错