题目描述
Let f(A,B) be the exclusive OR of A,A+1,...,B. Find f(A,B).
What is exclusive OR?
Constraints
All values in input are integers.
0≤A≤B≤1012
输入
Input is given from Standard Input in the following format:
A B
输出
Compute f(A,B) and print it.
样例输入 Copy
2 4
样例输出 Copy
5
提示
2,3,4 are 010, 011, 100 in base two, respectively. The exclusive OR of these is 101, which is 5 in base ten.
#include <bits/stdc++.h> using namespace std; using ll = long long; ll f(ll x) { if (x % 4 == 0) return x; if (x % 4 == 1) return 1; if (x % 4 == 2) return x + 1; return 0; } int main() { ll A, B; cin >> A >> B; cout << (f(B) ^ f(A - 1)) << endl; return 0; }