对于任何大于0的整数,我们将函数g定义为g(n)= n XOR(n * 2)。
给定x> 0,找到最小整数y> 0,使得对于某些k> 0,g k(y)= x。
例
x = 549
549 = 483 XOR (483 * 2) (as binary: 1000100101 = 111100011 XOR 1111000110)
483 = 161 XOR (161 * 2) (as binary: 111100011 = 10100001 XOR 101000010)
这意味着g 2(161)= 549。我们不能再走了,因为没有n使得g(n)= 161。因此,对于期望的输出X = 549为Y = 161。
规则
- 您不应该支持无效的条目。对于输入值x,保证存在一对(y,k)。
- 这是代码高尔夫球,因此最短答案以字节为单位!
测试用例
3 --> 1
5 --> 1
6 --> 2
9 --> 7
10 --> 2
23 --> 13
85 --> 1
549 --> 161
960 --> 64
1023 --> 341
1155 --> 213
1542 --> 2
9999 --> 2819
57308 --> 19124
57311 --> 223
983055 --> 1
a(n) = g(n)