力扣 1342. 将数字变成 0 的操作次数 C++

    科技2022-07-15  132

    给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。

    示例 1:

    输入:num = 14 输出:6 解释: 步骤 1) 14 是偶数,除以 2 得到 7 。 步骤 27 是奇数,减 1 得到 6 。 步骤 36 是偶数,除以 2 得到 3 。 步骤 43 是奇数,减 1 得到 2 。 步骤 52 是偶数,除以 2 得到 1 。 步骤 61 是奇数,减 1 得到 0

    示例 2:

    输入:num = 8 输出:4 解释: 步骤 18 是偶数,除以 2 得到 4 。 步骤 24 是偶数,除以 2 得到 2 。 步骤 32 是偶数,除以 2 得到 1 。 步骤 41 是奇数,减 1 得到 0

    示例 3:

    输入:num = 123 输出:12

    提示:

    0 <= num <= 10^6

    C++

    class Solution { public: int numberOfSteps (int num) { int res = 0; while(num){ (num % 2 == 0) ? num /= 2 : num -= 1; res++; } return res; } };
    Processed: 0.249, SQL: 8