|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:使用递归编写一个十进制转换为二进制的函数:
首先我按照我的思路写了这样一个函数,输出的结果是“0101”,与我需要的输出结果“1010”是反的,我没想到有什么方法能够实现倒序打印,用了方法二;
方法一:
def bin2(dec):
if dec:
print(dec%2,end='')
return bin2(dec//2)
方法二:
#用列表方式实现倒序打印,但是这个方法有个弊端是,得在函数外部声明一个列表变量,如果在函数内部申明这个变量的话得不到想要的结果,想请教下各位大神,除了参考答案里的方法,还有没有更好的办法解决这个问题?
a=[]
def bin2(dec):
if dec:
a.append(dec%2)
return bin2(dec//2)
i = len(a)
while i:
print(a.pop(),end='')
i -= 1
- def bin3(i):
- a=[]
- def bin2(dec):
- if dec:
- a.append(dec%2)
- return bin2(dec//2)
- i = len(a)
- while i:
- print(a.pop(),end='')
- i -= 1
- return bin2(i)
- bin3(255)
复制代码
外面再套一层就行了
|
|