Menu
CoddyTech

Steps to Reduce a Number to Zero

Bắt đầu với một số nguyên không âm n và lặp lại một quy tắc cho đến khi số đó đạt 0: nếu số đó chẵn, hãy chia số đó cho 2; nếu số đó lẻ, hãy trừ đi 1. Mỗi lần áp dụng quy tắc là một bước. Hãy trả về số bước cần thực hiện.

Hàm

numberOfSteps(n: integer) → integer
ninteger
số bắt đầu
Trả vềinteger
số bước cho đến khi số đó đạt 0

Ràng buộc

  • 0 ≤ n ≤ 231 - 1

Ví dụ

Đầu vào
n = 14
Đầu ra
6
Giải thích
Số đó lần lượt là 14 → 7 → 6 → 3 → 2 → 1 → 0: ba lần chia đôi và ba lần trừ, 6 bước.
challenge icon

Câu hỏi mở rộng

Giả sử số lẻ cũng có thể tăng thêm 1. Cần ít nhất bao nhiêu bước để về 0, và lựa chọn nào đúng với 15?

Đặt lại code
def numberOfSteps(n):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

n = 14

Đầu ra mong đợi

6