tło
W matematyce dobrze wiadomo, że liczby całkowite można umieszczać w korespondencji jeden-do-jednego z parami liczb całkowitych. Można to zrobić na wiele sposobów, aw tym wyzwaniu zaimplementujesz jeden z nich i jego odwrotne działanie.
Zadanie
Twój wkład jest dodatnią liczbą całkowitą n > 0
. Wiadomo, że istnieją unikalne nieujemne liczby całkowite, a, b ≥ 0
takie jak . Twój wynik to „odwrócona wersja” dodatniej liczby całkowitej .n == 2a * (2*b + 1)
n
2b * (2*a + 1)
Możesz założyć, że dane wejściowe i wyjściowe pasują do standardowego typu danych całkowitych bez znaku w Twoim języku.
Zasady i punktacja
Możesz napisać pełny program lub funkcję. Wygrywa najniższa liczba bajtów, a standardowe luki są niedozwolone.
Przypadki testowe
Są one podane w formacie in <-> out
, ponieważ funkcja, która ma zostać zaimplementowana, jest odwrotna: jeśli podasz z powrotem dane wyjściowe, powinieneś otrzymać oryginalne dane wejściowe.
1 <-> 1
2 <-> 3
4 <-> 5
6 <-> 6
7 <-> 8
9 <-> 16
10 <-> 12
11 <-> 32
13 <-> 64
14 <-> 24
15 <-> 128
17 <-> 256
18 <-> 48
19 <-> 512
20 <-> 20
28 <-> 40
30 <-> 384
56 <-> 56
88 <-> 224
89 <-> 17592186044416
Tabela liderów
Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka. Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
## Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Jeśli chcesz dołączyć wiele numerów do nagłówka (np. Ponieważ twój wynik jest sumą dwóch plików lub chcesz osobno wymienić kary za flagi tłumacza), upewnij się, że faktyczny wynik jest ostatnią liczbą w nagłówku:
## Perl, 43 + 2 (-p flag) = 45 bytes
Możesz także ustawić nazwę języka jako link, który pojawi się we fragmencie tabeli wyników:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes