题解:B3978 [信息与未来 2024] 幸运数字
Gilbert1206 · · 题解
一,ACCCCCCCcode
#include <bits/stdc++.h>
using namespace std;
bool xynumber(int p) {
if (p <= 1) {
return 0;
}//判断特例
int k = p % 2;
p /= 2;
if (p % 2 != k) {
return 0;
}//起始和终点单独判断
while (p > 1) {
if (p % 2 == p / 2 % 2 || p % 2 == k) {
//前面和后面是否为同一比特位
} else {
return 0;
}
k = p % 2;
p /= 2;
//分解
}
if (p % 2 != k) {
return 0;
}
return 1;//返回
}
int main() {
int a, b;
cin >> a >> b;
//输入
int ans = 0;
for (int i = a; i <= b; i++) {
if (xynumber(i) == 1) {
// cout << i << endl;
ans++;
}
}//运用函数
cout << ans;
//输出
return 0;
}