异或之和

题目描述

1⨁2⨁⋯⨁N1 \bigoplus 2 \bigoplus\cdots\bigoplus N12N 的值。

A⨁BA \bigoplus BAB 即AAA , BBB 按位异或。

输入输出格式

输入格式:

1 个整数NNN。

输出格式:

1 个整数,表示所求的值。

输入输出样例

输入样例#1:
3
输出样例#1:
0

说明

• 对于50% 的数据,1≤N≤1061 \le N \le 10^61N106;

• 对于100% 的数据,1≤N≤10181 \le N \le 10^{18}1N1018。

思路

打表找规律;

可以发现是按照 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 }

 

posted @ 2017-10-22 21:28  J_william  阅读(611)  评论(0编辑  收藏  举报