#include <bits/stdc++.h> using namespace std; int main(){ int n = 1001; int ans = 0; for(int i = 1; i <= n; ++i){ ans ^= i % 3; } cout << ans << endl; }
-2
0
1
2
简单解析一下(口答,不具权威型,如有更严谨的回答的同学,请联系我删掉此条解析): ^为异或符号,这题意思是从1到1001依次对3取模后互相异或;我们发现,i=1、2、3时,异或后的结果是3,i=4、5、6时恰好和第一组互补,结果为0;那么1001/3 = 333组,是个奇数,所以结果应该是3,但1001%3 = 2,整除后还余两次循环,因此3再与后两次进行异或,结果应该是0
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题