先看看題目:
1342. Number of Steps to Reduce a Number to Zero
Easy
Given a non-negative integer num
, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.
Example 1:
Input: num = 14 Output: 6 Explanation: Step 1) 14 is even; divide by 2 and obtain 7. Step 2) 7 is odd; subtract 1 and obtain 6. Step 3) 6 is even; divide by 2 and obtain 3. Step 4) 3 is odd; subtract 1 and obtain 2. Step 5) 2 is even; divide by 2 and obtain 1. Step 6) 1 is odd; subtract 1 and obtain 0.
Example 2:
Input: num = 8 Output: 4 Explanation: Step 1) 8 is even; divide by 2 and obtain 4. Step 2) 4 is even; divide by 2 and obtain 2. Step 3) 2 is even; divide by 2 and obtain 1. Step 4) 1 is odd; subtract 1 and obtain 0.
Example 3:
Input: num = 123 Output: 12
Constraints:
0 <= num <= 10^6
附上通關證明:
我的想法:題目就是在問算出一個數被2類似短除法需要幾個步驟。
其實就很簡單,整除就除2不整除就-1。
/** * @param {number} num * @return {number} */ var numberOfSteps = function(num) { var step = 0; while(num!==0){ step++; num = num%2===1 ? num-1 :num / 2 } return step };
文章標籤
全站熱搜