作业中二进制使用递归解决。做到一半
def erjinzhi(x):if int (x/2) == 0:
print(int(x%2),end='')
else:
print(int(x%2),end='')
x /=2
erjinzhi(x)
运行之后 erjinzhi(8)为0001如何将它翻转过来呢?
我本来想着使用list.reverse()进行翻转过来,报错之后
试着看了看 erjinzhi(8)的类型为 nonetype。
谢谢大佬指点。 先让其递归再打印
def erjinzhi(x):
if int(x/2) == 0:
print(int(x % 2), end='')
else:
temp = int(x % 2)
x /= 2
erjinzhi(x)
print(temp, end='')
erjinzhi(8) 本帖最后由 jackz007 于 2021-10-26 10:41 编辑
def erjinzhi(x):
if x :
erjinzhi(x // 2) # 递归
print(x % 2 , end = '')# 注意此句的位置
erjinzhi(int(input()))
print()
运行实况:
D:\0002.Exercise\Python>python x.py
8
1000
D:\0002.Exercise\Python>
改变递归和打印的顺序输出 0001
def erjinzhi(x):
if x :
print(x % 2 , end = '')# 注意此句的位置
erjinzhi(x // 2) # 递归
erjinzhi(int(input()))
print()
运行实况:
D:\0002.Exercise\Python>python x2.py
8
0001
D:\0002.Exercise\Python>
页:
[1]