洛谷 P3908 數列之異或

題目傳送門

很顯然的結論,可以打表找規律.

#include<iostream>
#include<cstdio>
#include<cstring>

using namespace std;

long long n,m,k;

inline long long mx() {
	long long s = 0,w = 1;
	char ch = getchar();
	while(ch < '0' || ch > '9') {
		if(ch == '-') w = -1;
		ch = getchar();
	}
	while(ch >= '0' && ch <= '9') {
		s = s * 10 + (ch - '0');
		ch = getchar();
	}
	return s * w;
}

int main() {
	n = mx();
	if(n == 1) {
		printf("1");
		return 0;
	}
	n--;
	if(n % 4 == 0) {
		printf("1");
		return 0;
	}
	if(n % 4 == 2) {
		printf("0");
		return 0;
	}
	if(n % 4 == 1) {
		printf("%lld",(n + 1) ^ 1);
		return 0;
	}
	if(n % 4 == 3) {
		printf("%lld",(n + 1) ^ 0);
		return 0;
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章