【Python】十进制转二进制、最大公约数

  • 编写一个将十进制转换为二进制的函数,要求采用“除2取余”的方式,结果与调用bin()一样返回字符串形式
def exchange(n):
    str1 = ''
    while n >= 1:
        a = n//2
        str1 += str(n%2)
        n = a
    print(str1[::-1])  #步长为-1,达到翻转字符串的效果
exchange(12)

  

  • 利用欧几里得算法求最大公约数
def gcd(x,y):
    if x < y:  #保证x比y大
        swap = x
        x = y
        y = swap
    if x%y == 0:  #每个递归都需要有一个return
        return y
    else:
        return (gcd(y,x%y))
print(gcd(10,20))
print(gcd(20,15))

  

posted @ 2019-01-30 16:41  半枫在努力  阅读(141)  评论(0)    收藏  举报