+ 1

Recursion

Having trouble building this conversation code using recursion. What am I missing? def convert(num): if num == 0: return 0 return (num % 2 + 10 * convert(num // 2)) a=int(input()) print(convert (a))

3rd Sep 2022, 10:09 PM
Kevin Calderon
Kevin Calderon - avatar
2 Answers
+ 1
# Copy, past and run me def convert(num): if num == 0: return 0 return (num % 2 + 10 * convert(num // 2)) a=int(input()) print(convert (a)) ''' https://www.sololearn.com/Discuss/3080341/?ref=app '''
3rd Sep 2022, 11:29 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Only the first 4 lines are the conversion function. Python uses indentation to signify which lines of code belong where. Since your last two lines are indented, python sees them as part of your function. But they shouldn't be. To fix you need to remove the indentation on those two lines. In your function, the third line is because of its indentation part of the if branch. But it should be the else branch, i.e. the branch that is executed if num is not equal to 0. Remove one level of indentation on that third line (to align with the if statement) or add an 'else:' between the two return statements, aligned with the if.
4th Sep 2022, 6:38 AM
Ani Jona 🕊
Ani Jona 🕊 - avatar