Home > Back-end >  How to return as a string in recursive?
How to return as a string in recursive?

Time:09-18

I'm doing decimal to binary using recursion method. However, I was unable to convert it to string using the code below. Any help? <3

def to_binary(d):
  if d == 0:
    return str(0)
  else:
    return str(d % 2   10 * to_binary(int(d // 2)))

result = to_binary(nums)
print("Result: "   result)

It's always giving errors:

  • unsupported operand type(s) for : 'int' and 'str'

Updated

CodePudding user response:

Likely the formula in the last line is wrong.

Your function should return a string. But then the last line would try to add and multiply a number with a string - what result do you expect?

I suggest this last line:

return to_binary(int(d // 2)))   str(d % 2)

CodePudding user response:

Well bro the error is pretty straight forward. Here: return str(d % 2 10 * to_binary(int(d // 2))) you call to_binary, which returns a String, but then try to add it with a number d % 2.

Simply change that line to: return str(d % 2 10 * int(to_binary(int(d // 2)))). This should solve your error.

CodePudding user response:

In your last line has a mistake.for example consider 3 converts to binary.it must be to_binary(3//2) = to_binary(1) 3%2=1

def to_binary(d):
  if d == 0:
    return str(0)
  elif(d==1):
     return str(1)
  else:
    return str(to_binary(d // 2) str(d%2))
  • Related