对于nim游戏的某个位置(x1,x2,x3),当且仅当它各部分的nim-sum等于0时(即x1⊕x2⊕x3=0),则当前位于必败点。
<span style="font-size:18px;">#include <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
#include <algorithm>
#include <cmath>
#include <map>
#include <queue>
#include <vector>
#include <cstdlib>
#include <string>
#include <stack>
#include <set>
#include <ctime>
using namespace std;
int a[105];
int main()
{
int n;
while(cin>>n&&n!=0)
{
int num=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
num^=a[i];
}
if(num==0) cout<<0<<endl;
else{
int sum=0;
for(int i=0;i<n;i++)
{
if(a[i]>(num^a[i]))
sum++;
}
cout<<sum<<endl;
}
}
}</span>