Lý lịch
Trong toán học, người ta biết rằng các số nguyên có thể được đưa vào một sự tương ứng một-một với các cặp số nguyên. Có nhiều cách có thể để làm điều này, và trong thử thách này, bạn sẽ thực hiện một trong số chúng và thao tác nghịch đảo của nó.
Nhiệm vụ
Đầu vào của bạn là một số nguyên dương n > 0
. Được biết, tồn tại số nguyên không âm duy nhất a, b ≥ 0
như vậy . Đầu ra của bạn là "phiên bản lật" của , số nguyên dương .n == 2a * (2*b + 1)
n
2b * (2*a + 1)
Bạn có thể giả sử rằng đầu vào và đầu ra phù hợp với kiểu dữ liệu số nguyên không dấu tiêu chuẩn của ngôn ngữ của bạn.
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
Chúng được đưa ra trong định dạng in <-> out
, vì hàm được triển khai là nghịch đảo của chính nó: nếu bạn đưa đầu ra trở lại cho nó, bạn sẽ nhận được đầu vào ban đầu.
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
Bảng xếp hạng
Dưới đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ. Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
## Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Nếu bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ phiên dịch), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề:
## Perl, 43 + 2 (-p flag) = 45 bytes
Bạn cũng có thể đặt tên ngôn ngữ thành liên kết sau đó sẽ hiển thị trong đoạn trích bảng xếp hạng:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes