hihocoder1178 計數

#include <iostream>
#include<cstring>
#include<set>
#include<cstdio>

using namespace std;

int n,L,R;
int main()
{
    scanf("%d",&n);
    scanf("%d%d",&L,&R);
    int x=1;
    while(x<R)
    {
        x*=2;
    }
    x=x/n+1;
    set<int> s;
    int ans;
    for(int i=0;i<=x;i++)
    {
        ans=i^(n*i);
        if(ans<=R&&ans>=L)
            s.insert(ans);
    }
    printf("%d\n",s.size());
    return 0;
}
簡單枚舉,只不過i的上限可以計算出來,n*i的二進制長度不可能超過R的長度
發佈了80 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章