Thử thách của bạn, nếu bạn chọn chấp nhận nó, được đưa ra một số nguyên K >= 1
, tìm các số nguyên không âm A
và B
sao cho ít nhất một trong hai điều kiện sau giữ:
K = 2^A + 2^B
K = 2^A - 2^B
Nếu không tồn tại như vậy A
và B
, chương trình của bạn có thể hoạt động theo bất kỳ cách nào. (Để làm rõ, A
và B
có thể bằng nhau.)
Các trường hợp thử nghiệm
Thường có nhiều giải pháp cho một số, nhưng đây là một vài:
K => A, B
1 => 1, 0
15 => 4, 0 ; 16 - 1 = 15
16 => 5, 4 ; 32 - 16 = 16; also 3, 3: 8 + 8 = 16
40 => 5, 3 ; 2^5 + 2^3 = 40
264 => 8, 3
17179867136 => 34, 11 ; 17179869184 - 2048 = 17179867136
Trường hợp thử nghiệm cuối cùng 17179867136
, phải chạy trong vòng dưới 10 giây trên bất kỳ máy tương đối hiện đại nào. Đây là một mã golf, vì vậy chương trình ngắn nhất tính bằng byte sẽ thắng. Bạn có thể sử dụng một chương trình đầy đủ hoặc một chức năng.
16
, cả hai 5,4
và 3,3
đều hợp lệ.
A
, B
là tiêu cực? (ví dụ: -1, -1
1)