马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
<p>def a(x):
y=x%2
temp=[]
str=''
if x==0 or x==1:
temp.append(x)
str+=str(temp.pop())
return str
else:
temp.append(y)
a(x//2)
x=int(input('请输入一个正整数:'))
a(x)</p><p>以上程序是我想用递归的方法写十进制转化成二进制的程序不知道哪里有问题一直报错请看一下</p>
本帖最后由 Twilight6 于 2020-6-7 12:33 编辑
多余操作一大堆,帮你改了你说又是另一种方法,把多余的去掉叫另一种方法???def a(x):
y=x%2
s=''
if x==0 :
return s
else:
temp.append(str(y))
s += str(temp.pop())
return a(x//2)+s
temp=[]
x=int(input('请输入一个正整数:'))
print(a(x))
字符串去掉多余操作:def a(x):
y=x%2
s=''
if x==0 :
return s
else:
s += str(y)
return a(x//2)+s
x=int(input('请输入一个正整数:'))
print(a(x))
列表去掉多余操作:temp = []
def a(x):
y = x % 2
if x == 0:
for i in temp[::-1]:
print(i,end='')
else:
temp.append(str(y))
return a(x // 2)
x = int(input('请输入一个正整数:'))
a(x)
|