面试题

给定 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。

初级程序:

int TheNum(int x, int k)
{
    int num = 0;
    long i = 1;
    for(;i < 2000; i++)
    {
        if(num <k && ((x + i) == (x | i)))
        {
            num++;
        }
        if(num == k)
        {
            break;
        }
    }
    return i;
}
原文地址:https://www.cnblogs.com/txfsheng/p/6203038.html