规律:从0开始(包括0),每连续的4个数的 异或和 为0
题目链接:https://ac.nowcoder.com/acm/contest/3674/M
1 #include<stdio.h> 2 typedef long long ll; 3 4 ll a, b; 5 6 ll f(ll x) //从0开始(包括0),每连续的4个数的 异或和 为0 7 { 8 if(x % 4 == 0) //位于4个数中的第一位 9 return x; 10 else if(x % 4 == 1) //位于4个数中的第二位 11 return 1; 12 else if(x % 4 == 2) //位于4个数中的第三位 13 return x + 1; 14 else if(x % 4 == 3) //位于4个数中的第四位 15 return 0; 16 } 17 18 int main() 19 { 20 scanf("%lld%lld", &a, &b); 21 printf("%lld ", f(b) ^ f(a - 1)); 22 return 0; 23 }