幸运数字 题解

题目在主页,如有出错请指出

include <bits/stdc++.h>

using namespace std;

bool islucky(int n)
{
string s;
while (n)
{
s += n % 2 + '0';
n /= 2;
}
reverse(s.begin(), s.end());
for (int i = 0;i < s.size();i++)
{
if (i == 0)
{
if (s[i] != s[i + 1]) return 0;
}
else if (i == s.size())
{
if (s[i] != s[i - 1]) return 0;
}
else if (s[i] != s[i - 1] && s[i] != s[i + 1]) return 0;
}
return 1;
}

int main()
{
int a, b;
scanf("%d %d", &a, &b);
int cnt = 0;
for (int i = a;i <= b;i++)
if (islucky(i)) cnt++;
cout << cnt << endl;
return 0;
}

posted @ 2025-04-26 08:37  嵇若凌  阅读(6)  评论(0)    收藏  举报