Menu
CoddyTech

Steps to Reduce a Number to Zero

0以上の整数 n から始め、0 に達するまで次の規則を繰り返します。数が偶数なら 2 で割り、奇数なら 1 を引きます。この規則を適用するたびに1ステップと数えます。必要なステップ数を返してください。

関数

numberOfSteps(n: integer) → integer
ninteger
開始数
戻り値integer
数が 0 に達するまでのステップ数

制約

  • 0 ≤ n ≤ 231 - 1

例

入力
n = 14
出力
6
説明
数値は 14 → 7 → 6 → 3 → 2 → 1 → 0 と進みます。3回の半減と3回の減算で、6 ステップです。

lock icon提出時に隠しテスト+12件

challenge icon

発展問題

奇数は、1 減る代わりに 1 増えることもあるとします。0 に到達するための最少ステップ数はいくつですか。また、15 の場合はどちらを選ぶのが正しいですか?

コードをリセット
def numberOfSteps(n):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

n = 14

期待値

6