将十进制转换为二进制的函数:如何返回结果而不是打印它?



我需要编写一个将整数转换为二进制的函数。到目前为止,我写的函数定义是:

def decimalToBinary(number):
if number > 1:
decimalToBinary(number//2)
print(number % 2, end = '')

我的问题是:

  1. 我应该返回结果而不是打印它,我不确定如何做到这一点。
  2. 我不确定我的代码是否是我能写的最好的递归代码。

感谢您的宝贵时间!

将数字转换为字符串,并使用return而不是print。然后将其与递归调用连接。

def decimalToBinary(number):
if number > 1:
return decimalToBinary(number//2) + str(number % 2)
else:
return str(number % 2)

您可以传递一个count变量来定位数字

def decimalToBinary(number, count = 0):
if number > 1:
return ((number%2) * (10**count) + decimalToBinary(number//2, count+1))
return ((number%2) * (10**count))

同样,如果你需要一个非递归函数,你可以使用像这样的东西

def LinealDecimalToBinary(num):
count = 0
binNum = 0
while(num > 0):
binNum += (num%2) * (10**count)
num = num//2
count += 1
return binNum

最新更新