思路: 设c=a-b 可以推出a ^ c == a - c 然后直接枚举c,求答案 c o d e code code #include<iostream> #include<cstdio> using namespace std; int n; int main() { scanf("%d", &n); int ans = 0; for(int i = 1; i <= n; i ++) { for(int j = i * 2; j <= n; j += i) { if((j ^ i) == j - i) ans ++; } } printf("%d", ans); return 0; }