本题可以使用 位运算 + 模拟。
我们只需要关注二进制中每个 1 出现的位置。
如果相邻两个 1 的位置差为 gap,那么它们之间 0 的数量就是:
gap - 1
对于一个二进制数,我们定义相邻两个 1 之间 0 的数量为他们两个之间的距离,如 1001011,相邻两个 1 之间的距离从左到右分别为 2、1、0。
现在如果一个整数转化为二进制数满足如下条件:
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.