Đề bài
Xem bản gốc (English)Liên tục chia n cho 2, bỏ phần dư (chia lấy phần nguyên), cho đến khi kết quả là 1. Đếm số lần chia như vậy.
Cài đặt hàm halve_until_one(n).
Đầu vào
n: Một số nguyên dương.
Đầu ra
Trả về số lần chia.
Ràng buộc
1 ≤ n ≤ 1.000.000.000.000
Ví dụ
Ví dụ 1
Đầu vào:
n = 20
Kết quả mong đợi:
expected = 4
Đầu vào:
long long n = 20;
Kết quả mong đợi:
long long expected = 4;
Đầu vào:
long n = 20;
Kết quả mong đợi:
long expected = 4;
Giải thích
20 → 10 → 5 → 2 → 1 cần 4 lần chia.
Ví dụ 2
Đầu vào:
n = 1
Kết quả mong đợi:
expected = 0
Đầu vào:
long long n = 1;
Kết quả mong đợi:
long long expected = 0;
Đầu vào:
long n = 1;
Kết quả mong đợi:
long expected = 0;
Giải thích
n đã là 1 nên không cần chia lần nào.
Tham khảo
Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.