euisblue
1342. Number of Steps to Reduce a Number to Zero

C++

1class Solution { 2public: 3 int numberOfSteps (int num) { 4 int cnt = 0; 5 while (num > 0) { 6 if (num&1 == 1) --num; 7 else num >>= 1; 8 9 ++cnt; 10 } 11 return cnt; 12 } 13};

JavaScript

1var numberOfSteps = function(num) { 2 let cnt = 0; 3 4 while (num > 0) { 5 if ((num & 1) == 0) num = num / 2; 6 else num -= 1; 7 ++cnt; 8 } 9 10 return cnt; 11};

Ruby

1# Runtime: 48 ms, faster than 84.85% 2# Memory Usage: 209.6 MB, less than 70.71% 3def number_of_steps (num) 4 cnt = 0 5 while (num > 0) do 6 if num%2 == 0 7 num = num / 2 8 else 9 num -= 1 10 end 11 12 cnt += 1 13 end 14 cnt 15end 16 17# usnig BITWISE OPERATOR 18# Runtime: 40 ms, faster than 95.96% 19# Memory Usage: 209.6 MB, less than 70.71% 20def number_of_steps (num) 21 cnt = 0 22 while (num > 0) do 23 if num&1 == 0 24 num = num >> 1 25 else 26 num -= 1 27 end 28 29 cnt += 1 30 end 31 cnt 32end