3 条题解

  • 0
    @ 2026-8-3 13:39:44

    位运算的性质,n位2的整数幂减一以后一定 得到一个全为1的n-1位二进制数,再与运算一下若为0则说明这是一个2的整数幂,不为0则说明不是,比如6的二进制为101,减去1为100,与运算得到4,8的二进制为1000,减去1为111,与运算为0,注意&的优先级低于==,所以写成(i&(i-1))==0

    #include <bits/stdc++.h>
    using namespace std; 
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(0);
    	int l,r;
    	cin>>l>>r; 
    	int ans=0;
    	for(int i=l;i<=r;i++){
    	if((i&(i-1))==0)ans++; 
    	}
        cout<<ans;
    	return 0;
    }
    

    信息

    ID
    96
    时间
    1000ms
    内存
    256MiB
    难度
    入门
    标签
    递交数
    101
    已通过
    58
    上传者