Kotlin Leetcode - 1342. Number of Steps to Reduce a Number to Zero
class Solution {
    fun numberOfSteps(num: Int): Int {
    }
}
解題思路
這一題考的是數字的簡單運算
我們用一個 while 迴圈
就可以算出答案
四則運算的部分由於很單純
所以也可以使用位元運算進行
Kotlin 參考解答
點擊展開解答
class Solution {
    fun numberOfSteps(num: Int): Int {
        var privateNum = num
        var numOfStepsToZero = 0
        while (privateNum != 0) {
            when {
                privateNum % 2 == 0 -> privateNum /= 2
                else -> privateNum -= 1
            }
            numOfStepsToZero++
        }
        return numOfStepsToZero
    }
}
將上述的四則運算改成位元運算的方式
class Solution {
    fun numberOfSteps(num: Int): Int {
        var privateNum = num
        var numOfStepsToZero = 0
        while (privateNum != 0) {
            when {
                privateNum and 1 == 0 -> privateNum = privateNum shr 1
                else -> privateNum--
            }
            numOfStepsToZero++
        }
        return numOfStepsToZero
    }
}
回到 leetcode 列表