python 迭代法和递归法求两个数的最大公约数

迭代法

def gcdIter(a,b):  
    r=1  
    while r!=0:  
        r=a%b     #a比b小则保留a的值;a比b大则保留它们的余数
        a=b       #b的值赋给a
        b=r       #r的值赋给b

    return a  


递归法
def gcdRecur(a, b):  
    if a>b:  
        a, b=b, a  
    if b%a==0:  
        return a  
    else:  
        return gcdRecur(a,b%a)  


 
  
def gcd(a, b):
  if a % b == 0:
    return b
  else:
    return gcd(b, a % b)




你可能感兴趣的:(python 迭代法和递归法求两个数的最大公约数)