洛谷3908 異或之和
阿新 • • 發佈:2018-11-10
原題連結
遇到這種數學題,像我這種數學很爛的當然是上來就打表啦。
//以下是前30個數的表。 1 -> 1 2 -> 3 3 -> 0 4 -> 4 5 -> 1 6 -> 7 7 -> 0 8 -> 8 9 -> 1 10 -> 11 11 -> 0 12 -> 12 13 -> 1 14 -> 15 15 -> 0 16 -> 16 17 -> 1 18 -> 19 19 -> 0 20 -> 20 21 -> 1 22 -> 23 23 -> 0 24 -> 24 25 -> 1 26 -> 27 27 -> 0 28 -> 28 29 -> 1 30 -> 31
很容易看出來有四種情況。
- \(n \% 4 = 0\),則答案為\(n\)。
- \(n \% 4 = 1\),則答案為\(1\)。
- \(n \% 4 = 2\),則答案為\(n + 1\)。
- \(n \% 4 = 3\),則答案為\(0\)。
我數學差,別問我為什麼
於是很愉快的\(A\)了。
#include<cstdio> using namespace std; int main() { long long n, x; scanf("%lld", &n); x = n % 4; printf("%lld", x ^ 3 ? !x ? n : x ^ 1 ? n + 1 : 1 : 0); return 0; }