连续区间的异或和

规律:从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\n", f(b) ^ f(a - 1));
22     return 0;
23 }
View Code
posted @ 2020-01-12 16:09  缘未到  阅读(590)  评论(0编辑  收藏  举报