为了账号安全,请及时绑定邮箱和手机立即绑定

代码的理解问题

def gcs(a,b,c=1):
    if 0==a%2 and 0==b%2:
        return gcs(a/2,b/2,c*2);
       
    s = abs(a-b)
    m = min(a,b)
    if s == m:
        return m*c
    return gcs(s,m,c)

 def __str__(self):
        c = gcs(self.p, self.q)
        return '%s/%s' % (self.p/c, self.q/c)

    __repr__ = __str__

上述代码的意思,作用是什么

正在回答

1 回答

求出self.p 和 self.q 的最大公约数  因为有理数通过计算后可能会产生 3/9  5/10 之类的结果 然后这种结果不是最简的  就需要计算出他们能够 同时除取的一个最大公约数来使结果变成 1/3  1/2 这样的最简的结果  上边写的gcs() 函数就是通过递归算出最大公约数用的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255532    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

代码的理解问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号