解题思路:
- 递归
- 奇数则numberOfSteps(num)=1+numberOfSteps(num-1)
- 偶数则numberOfSteps(num)=1+numberOfSteps(num//2)
代码:
- python:
class Solution: def numberOfSteps(self, num: int) -> int: if num <= 3: return num elif num % 2 == 1: return 1 + self.numberOfSteps(num-1) else: return 1 + self.numberOfSteps(num//2)
-
C++:
class Solution { public: int numberOfSteps(int num) { if (num<=3) return num; else if (num%2==1) return numberOfSteps(num-1) + 1; else return numberOfSteps(num/2) + 1; } };