|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第17讲
1.这是小甲鱼写的辗转相除法- def gcd(x, y):
- while y:
- t = x % y
- x = y
- y = t
-
- return x
-
- print(gcd(4, 6))
复制代码 这是我写的- def gcd(x,y):
- return [x // y,x % y]
- a, b= 1999,615
- while 1 : # 没到结果就一直循环
- # 先计算 一下,计算的得到的余数要检验
- c,d = gcd(a, b)
- # 检验 成功之后就输出
- if d == 0:
- print('最大公约数为%d'%(b))
- break
- else: # 失败之后将运算的结果作为新的参数
- a, b = b, d
复制代码 2 这是小甲鱼的十进制转二进制- def Dec2Bin(dec):
- temp = []
- result = ''
- while dec:
- quo = dec % 2
- dec = dec // 2
- temp.append(quo)
- while temp:
- result += str(temp.pop())
- return result
- print(Dec2Bin(62))
复制代码 这是我写的
- def conv(nd):
- left = nd # 为了方便最后print
- c = bio = '' # 用于连接余数得到顺序和逆序的二进制数初始值
- while 1:
- c= c + str(nd % 2) # 先得到余数,如果和下面的顺序反了就会导致nd成了nd/2
- nd = nd // 2 # 得到商
- if nd == 0: # 判定是否可以结束
- b = [i for i in reversed(c)] # 算完了的话就可以着手处理结果的顺序了,现在逆转之
- for i in b:
- bio = bio + i # 完成逆转
- print('%d的二进制表达为%d'%(left,int(bio)))
- break
- conv(255)
复制代码
|
|