Ihre Herausforderung besteht darin, bei einer bestimmten Ganzzahl K >= 1
nicht negative Ganzzahlen zu finden, A
und zwar B
so, dass mindestens eine der beiden folgenden Bedingungen zutrifft:
K = 2^A + 2^B
K = 2^A - 2^B
Wenn es ein solches A
und nicht gibt B
, kann sich Ihr Programm auf irgendeine Weise verhalten. (Zur Verdeutlichung A
und B
kann gleich sein.)
Testfälle
Es gibt oft mehrere Lösungen für eine Zahl, aber hier sind einige:
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
Der letzte Test Fall 17179867136
, muss in unter 10 Sekunden läuft auf jede relativ moderne Maschine. Dies ist ein Codegolf, also gewinnt das kürzeste Programm in Bytes. Sie können ein vollständiges Programm oder eine Funktion verwenden.
16
, beide 5,4
und 3,3
sind gültig.
A
, B
negativ sein? (zB -1, -1
für 1)