我必须递归编写一个函数,以转换给定的十进制字符串并返回二进制。我无法更改函数的前三行(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)
答案 0 :(得分:1)
将商str((int)a//2)
发送给函数调用,而不是发送余数。
对于十进制到二进制的转换,我们将余数作为当前输出,并将转换进一步应用于商。