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

关于def gcd(a,b)

def gcd(a,b):
    if b == 0:
        return a
    return gcd(b,a%b)
   
   我的问题是 从哪里体现出了 a 与 b 先相除一次
   例如 a 为 3 , b 为 12


正在回答

4 回答

这个函数是求最大公约数的,不是约分的。

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

无论a = 3, b = 12.还是a = 12 , b = 3.最后返回的都是3.如果我自己手动走程序没错的话。你可以试一下

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

没看到定义要求 a>b 啊?而且 a = 12 我能理解 , b = 3 是为什么? b 不是应该 = a%b 么?如果按我说的例子,a%b 应该为 6 吧?

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

豆芽菜3

a%b是a除以b的余数。
2016-12-12 回复 有任何疑惑可以回复我~
#2

慕粉2014408783 提问者 回复 豆芽菜3

谢谢解答 我理解是 a与b 先除一次 那么这个先除一次在哪里说明了呢?定义在哪要求 a>b 呢?小白一个 问题比较多 希望能得到详细说明
2016-12-12 回复 有任何疑惑可以回复我~

其实你这么举例子是错误的,a>b是定义中要求的,你给定a=3, b=12,在执行一次gcd(a, b)之后,a=12, b=3, 相当于a, b 互换,还是a>b,此时继续执行gcd(a, b),可得a=3, b=0, 由于b=0,此时return a, 将得到a的值,即3, 为最大公约数。 

1 回复 有任何疑惑可以回复我~
#1

慕粉2014408783 提问者

没看到定义要求 a>b 啊?而且 a = 12 我能理解 , b = 3 是为什么? b 不是应该 = a%b 么?如果按我说的例子,a%b 应该为 6 吧?
2016-12-11 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

关于def gcd(a,b)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信