笔试面试13--给定 x, k ,求满足 x + y = x | y 的第 k 小的正整数 y

来源:互联网 发布:甲骨文软件测试面试 编辑:程序博客网 时间:2024/05/07 22:13

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

解法:终极程序
初级程序:

# define Max 2000int TheNum(int x, int k){    int num = 0;    long i = 1;    for(;i < Max; i++)    {        if(num <k && ((x + i) == (x | i)))        {            num++;        }        if(num == k)        {            break;        }    }    return i;}
0 0
原创粉丝点击