考虑g(x)操作为:从低位到高位找到第一个连续1段,然后最高位那个1往左移动一位,其余的1移动至最低位即可。
例如:312 = 100111000
g(312) = 10100011
特别的,g(1) = 2 (10), 这种二进制需要进位的情况,我们在操作二进制字符串之前需要对最高位补全一个前导零。
定义fff(xxx)为x在二进制表示下的111个数,例如f(7)=3f(7)=3f(7)=3,f(8)=1f(8)=1f(8)=1,f(9)=2f(9)=2f(9)=2。
定义g(x)g(x)g(x)为第一个比xxx大的数字yyy,使得f(x)=f(y)f(x)=f(y)f(x)=f(y),例如g(1)=2,g(2)=4,g(3)=5g(1)=2,g(2)=4,g(3)=5g(1)=2,g(2)=4,g(3)=5。
本题属于以下题库,请选择所需题库进行购买
ScanQRCodePrompt
请使用微信扫描下方二维码完成注册