Description
用位运算生成下一个含有k个1的二进制数
在所有32-bit的整数中,含有k个数字“1”的二进制数一共有C(32,k)个。给出其中的一个二进制数,你如何利用位运算快速找到下一个恰有k个“1”的数?例如,如果给你二进制数01011100,那么下一个(含4个“1”的)数就是01100011。
Input
一行两个数n和k,n表示二进制含有k个1的一个十进制数
Output
一行一个最接近n的十进制整数m,m>n且m的二进制数含有k个1
HINT
样例二:
输入:
30 4
输出:
39
0 <= n < 2^31 -1