逆鳞丶樱之羽 发表于 2020-11-27 10:51:23

作业欧几里得算法的问题

偶然遇到
问题如下
def gcd(a, b):
    while a != 0:
         a,b = b%a,a
    return b
代码如上,这样公约数返回1
def gcd(a, b):
    while a != 0:
      a = b % a
      b= a

    return b
这样写公约数返回0
求解释。
这两个写法不都是变量值互换吗?

1471590985 发表于 2020-11-27 11:25:42

这两个写法 是不一样的,第一个写法相当于:
t = a
a = b%a
b = t
是把原来a的值给b,而你第二个写法里面最后是a和b相等的

小甲鱼的铁粉 发表于 2020-11-27 11:28:40

1471590985 发表于 2020-11-27 11:25
这两个写法 是不一样的,第一个写法相当于:

是把原来a的值给b,而你第二个写法里面最后是a和b相等的

原来如此
页: [1]
查看完整版本: 作业欧几里得算法的问题