将十进制转换为二进制(Python)

将十进制转换为二进制(Python),python,python-3.x,recursion,binary,decimal,Python,Python 3.x,Recursion,Binary,Decimal,我必须递归地编写一个函数来转换给定的十进制字符串并返回二进制。我无法更改函数的前3行(n=Len(a)…return str(bin(int(a))),我不明白为什么我的解决方案不起作用。有人有什么建议吗 {str}->{str} def converttobin(a: str) -> str: n = len(a) if n == 1: return str(bin(int(a))) else: return converttobi

我必须递归地编写一个函数来转换给定的十进制字符串并返回二进制。我无法更改函数的前3行(n=Len(a)…return str(bin(int(a))),我不明白为什么我的解决方案不起作用。有人有什么建议吗

{str}->{str}

def converttobin(a: str) -> str:
    n = len(a)
    if n == 1:
        return str(bin(int(a)))
    else:
        return converttobin(str(int(a) % 2)) + str(int(a) % 2)

将商
str((int)a//2)
发送到函数调用,而不是发送余数


对于十进制到二进制的转换,我们将余数作为当前输出,并进一步对商进行转换。

这种方法需要将商与余数分开–即
/
%
。你的代码只计算剩余的
%
。请不要把这样的问题扔掉。任务、代码、限制甚至语言标签都完全不同。这是否回答了您的问题?