异或之和
题目描述
求1⨁2⨁⋯⨁N1 \bigoplus 2 \bigoplus\cdots\bigoplus N1⨁2⨁⋯⨁N 的值。
A⨁BA \bigoplus BA⨁B 即AAA , BBB 按位异或。
输入输出格式
输入格式:1 个整数NNN。
输出格式:1 个整数,表示所求的值。
输入输出样例
输入样例#1:
3
输出样例#1:
0
说明
• 对于50% 的数据,1≤N≤1061 \le N \le 10^61≤N≤106;
• 对于100% 的数据,1≤N≤10181 \le N \le 10^{18}1≤N≤1018。
思路
打表找规律;
可以发现是按照 1,n+1,0,n的规律循环的;
代码
1 #include<cstdio> 2 #define LL long long 3 LL n,m,ans; 4 int main(){ 5 scanf("%lld",&n),m=n%4; 6 if(m==0) ans=n; 7 if(m==1) ans=1; 8 if(m==2) ans=n+1; 9 if(m==3) ans=0; 10 printf("%lld",ans); 11 return 0; 12 }