gpt4 book ai didi

python - 在Python中使用递归将整数转换为base-x系统

转载 作者:行者123 更新时间:2023-11-30 23:59:48 26 4
gpt4 key购买 nike

我正在尝试编写一个递归代码,可以将数字转换为任何基本系统。例如,整数 10 转换为二进制将转换为 1010

到目前为止,我已经有了这个,但我的输出之间有“无”。谁能帮我修改我的代码吗?

def convert(a,b):
add = a%b
if a<=1:
return a
else:
print(base(a//b,b), add)

我的想法是 a%b 是要添加到数字末尾的数字,而 a//b 是递归部分,它使用前一个二进制数的答案,因此基数 2 中的 10 只是转换(5 ,2) 并在末尾添加 0,因为 a//b=5 且 a%b=0 = 1010

最佳答案

您的 else block 中没有 return 语句,并且没有对 convert 进行递归调用。

我想你想要:

if a<=1:
return str(a)
else:
return str(convert(a//b,b)) + str(add)

>>> def convert(a,b):
... add = a%b
... if a<=1:
... return str(a)
... else:
... return str(convert(a//b,b)) + str(add)
...
>>> convert(10,2)
'1010'

一般来说,尽量避免在递归函数中混合类型。最常见的情况是,您的基本情况和递归情况都应返回相同的类型。

关于python - 在Python中使用递归将整数转换为base-x系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2088201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com