启东市住房建设局网站,个人网站设计企业,网站建设配置,网站主动服务方案如何求n的二进制表示中第k位是几#xff1f;
1.先把第k位移到最后一位#xff1a;n k
2.看个位是几#xff1a;x 1
综合得到#xff1a;n k 1返回的是n的二进制表示中第k位 题目链接#xff1a;
https://www.acwing.com/problem/conten…如何求n的二进制表示中第k位是几
1.先把第k位移到最后一位n k
2.看个位是几x 1
综合得到n k 1返回的是n的二进制表示中第k位 题目链接
https://www.acwing.com/problem/content/803/
题解
用到lowbit(x) x -x这个公式它返回的是x的最后一个1以及后面的二进制数字。
代码
#include iostreamusing namespace std;int lowbit(int x)
{return x -x;
}int main()
{int n;cin n;while (n--){int x;cin x;int res 0;while (x) x - lowbit(x), res; // 每次减去x的最后一位1cout res ;}return 0;
}