第17讲十进制转二进制
小甲鱼老师的算法是: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 transfer10to2(num1):
list1 = []
while num1!=0:
num2 = num1 % 2
num1 = num1 // 2
list1.append(num2)
list1.reverse()
for i in list1:
print(i,end='')
transfer10to2(10)
pop很妙啊,但是我感觉我这个比较精炼。{:10_256:},欧几里得算法想了半天。 {:10_306:}
求商和求余 太妙了,在思考欧几里得算法时,还考虑了比较两个数字的大小,完全绕进去了,其实没必要 zhongyuanadler 发表于 2020-4-3 15:18
求商和求余 太妙了,在思考欧几里得算法时,还考虑了比较两个数字的大小,完全绕进去了,其实没必要
还可以精炼一些:
def transfer10to2(num1):
list1 = []
while num1:
num2 = num1 % 2
num1 //= 2
list1.append(str(num2))
print(''.join(list1[::-1]))
transfer10to2(10) qiuyouzhi 发表于 2020-4-3 15:25
还可以精炼一些:
妙! .join() 我刚查到了 用法 ,list1[::-1] 这个字段可以解释下吗?谢谢了 zhongyuanadler 发表于 2020-4-3 15:32
妙! .join() 我刚查到了 用法 ,list1[::-1] 这个字段可以解释下吗?谢谢了
列表切片,你学到列表之后就会学到
而且切片比reverse快(小代码不用考虑效率) qiuyouzhi 发表于 2020-4-3 15:33
列表切片,你学到列表之后就会学到
而且切片比reverse快(小代码不用考虑效率)
{:10_266:}列表之前其实学过了,切片用的很少,没记住 现在记住了!谢谢了! zhongyuanadler 发表于 2020-4-3 15:40
列表之前其实学过了,切片用的很少,没记住 现在记住了!谢谢了!
{:10_256:}
页:
[1]