Đề bài
Xem bản dịchRepeatedly divide n by 2, dropping any remainder (integer division), until it becomes 1. Count how many divisions that takes.
Implement halve_until_one(n).
Input
n: A positive integer.
Output
Return the number of divisions.
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 takes 4 divisions.
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 is already 1, so no divisions are needed.
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.