马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
|