我正在尝试通过使用递归来解决一个简单的问题。
给出一个非负整数num,返回将其减少为零的步骤数。如果当前数字是偶数,则必须将其除以2,否则,必须从中减去1。
我给出的解决方案是:
class Solution:
def numberOfSteps(self, num: int) -> int:
if num!=0:
if num%2==0:
return 1+ numberOfSteps(num//2)
else:
return 1+ numberOfSteps(num-1)
else:
return 0
但是我遇到此错误:
NameError: name 'numberOfSteps' is not defined
return 1+ numberOfSteps(num//2)
Line 5 in numberOfSteps (Solution.py)
ret = Solution().numberOfSteps (param_1)
Line 29 in _driver (Solution.py)
_driver()
Line 40 in <module> (Solution.py)
答案 0 :(得分:1)
class Solution:
def numberOfSteps(self, num: int) -> int:
if num!=0:
if num%2==0:
return 1+ self.numberOfSteps(num//2)
else:
return 1+ self.numberOfSteps(num-1)
else:
return 1