qin_yin 发表于 2020-9-12 23:01:14

递归十进制转二进制

def binary(dec):
    if dec == 1:
      return 1
    else:
      yushu = dec % 2
      return binary(dec // 2),yushu


dec = int(input('输入需要转为二进制的十进制数'))
result = binary(dec)
print('0b',result)

声明dec = 4

结果:0b ((1, 0), 0),他这里虽然显示了正确的二进制数值,但是它是以一个元组的类型返回的,我不想这样,我想让他是一个字符串的或者int的类型返回
再问一个题外的,请问我这样写间接的修改元组吗
a = (1,2,3)
>>> b = list(a)
>>> b.append(4)
>>> a = tuple(b)
>>> a
(1, 2, 3, 4)
>>>

sunrise085 发表于 2020-9-12 23:08:51

你的程序else中的return有很大的问题,每递归一次元组就套一层,当数比较大的时候,那返回值就会让人眼花缭乱了。
帮你改成返回字符串了
def binary(dec):
    result=''
    if dec <= 1:
      return str(dec)
    else:
      yushu = dec % 2
      return binary(dec // 2)+str(yushu)


dec = int(input('输入需要转为二进制的十进制数'))
result = binary(dec)
print('0b'+result)

再问一个题外的,请问我这样写间接的修改元组吗
是的
页: [1]
查看完整版本: 递归十进制转二进制