Якщо ви вирішите прийняти це ваше завдання, полягає в тому, щоб, задавши ціле число K >= 1
, знайти невід’ємні цілі числа A
та B
такі, що виконується хоча б одне з двох умов:
K = 2^A + 2^B
K = 2^A - 2^B
Якщо не існує таких A
і B
ваша програма може вести себе будь-яким способом. (Для уточнення A
і B
може бути рівним.)
Тестові справи
Часто існує кілька рішень для кількості, але ось кілька:
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
Останній тест, 17179867136
, повинні працювати менш ніж за 10 секунд на будь-який відносно сучасної машини. Це кодовий гольф, тому виграє найкоротша програма в байтах. Ви можете використовувати повну програму або функцію.
16
обох, 5,4
і 3,3
для дійсних.
A
, B
бути негативним? (наприклад, -1, -1
для 1)