算法竞赛进阶指南--lowbit运算,找到二进制下所有是1的位

// lowbit运算,找到二进制下所有是1的位
int H[37];
// 预处理
for (int i = 0; i < 36; i++) H[(1ll << i) % 37] = i;
// 对多次询问进行求解
while (cin >> n) {
	while (n > 0) {
		cout << H[(n & -n) % 37] << ' ';
		n -= n & -n;
	}
	cout << endl;
}
发布了693 篇原创文章 · 获赞 348 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_43627118/article/details/105506980