具体看:萌新笔记之Nim取石子游戏
可以这么写:
#include <bits/stdc++.h> using namespace std; typedef long long LL; int bit[35]; void solve(int n) { int num=0; while(n) { n%2==1?bit[num]++:bit[num]; n/=2; num++; } } int main() { int n,x; scanf("%d",&n); memset(bit,0,sizeof(bit)); for(int i=1;i<=n;i++) { scanf("%d",&x); solve(x); } for(int i=0;i<=30;i++) { if(bit[i]%2) { puts("A"); return 0; } } puts("B"); return 0; }
还可以这么写!
#include <bits/stdc++.h> using namespace std; typedef long long LL; int main() { int n,x=0,y; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&y); x^=y; } x==0?puts("B"):puts("A"); return 0; }