区间异或和
计算l,l+1,l+2,...r的异或和
输入格式:
输入包括两个整数1≤l,r≤
* *
输出格式:
输出题目描述中的整数
输入样例:
3 6
输出样例:
4
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll sum(ll n)//[1,n]的区间异或 { if(n%4==0)return n; else if(n%4==1)return 1; else if(n%4==2)return n+1; else if(n%4==3)return 0; else return 0; } int main() { ll l,r; cin>>l>>r; ll ans=sum(r)^sum(l-1);//[1,r]区间异或^[1,l-1]的区间异或等于[l,r]的区间异或 cout<<ans<<endl; return 0; }