名企笔试:2017美团java工程师笔试编程题(特殊运算)2017-03-02 算法爱好者

来源:互联网 发布:广东奥飞数据董事长 编辑:程序博客网 时间:2024/06/11 04:59
给定 x, k ,求满足 x + y = x | y 的第 k 小的正整数 y 。 | 是二进制的或(or)运算,例如 3 | 5 = 7。
比如当 x=5,k=1时返回 2,因为5+1=6 不等于 5|1=5,而 5+2=7 等于 5 | 2 = 7。

输入描述:
每组测试用例仅包含一组数据,每组数据为两个正整数 x , k。 满足 0 < x , k ≤ 2,000,000,000。

输出描述:
输出一个数y。

输入例子:
5 1

输出例子:
2

解析:
x+y=(x|y)+(x&y)

要使x+y=x|y,令x&y=0即可

C++ 源代码:

0 0
原创粉丝点击