Menu
CoddyTech

Steps to Reduce a Number to Zero

从一个非负整数 n 开始,重复应用以下规则,直到它变为 0:如果这个数是偶数,就将它除以 2;如果是奇数,就减去 1。每应用一次规则算作一步。返回所需的步数。

函数

numberOfSteps(n: integer) → integer
ninteger
起始数字
返回值integer
直到数字变为 0 所需的步数

约束条件

  • 0 ≤ n ≤ 231 - 1

示例

输入
n = 14
输出
6
解释
这个数字按 14 → 7 → 6 → 3 → 2 → 1 → 0 变化:除以 2 三次,再减去 3 次,共 6 步。
challenge icon

进阶

假设奇数也可以加 1。到达 0 最少需要几步?对于 15,哪种选择是正确的?

重置代码
def numberOfSteps(n):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

n = 14

预期输出

6