实现代码:
#include<bits/stdc++.h>
using namespace std;
bool win [10005];
int main()
{
int t;
cin>>t;
int s[t];
int arr[4]={1,3,7,8};
win[0]=1;//当轮到A时候,没有球,则说明B把最后一个球拿走了,则此时是A的必胜点。
for(int i=1;i<=10000;i++)//枚举所有小球。
{
for(int j=0;j<4;j++){
if(i>=arr[j]&&!win[i-arr[j]]){//若i-arr[j]是必败点,则i点为必胜点。
win[i]=1;
}
}
}
for(int i=0;i<t;i++){
int n;
cin>>n;
if(win[n])s[i]=1;
else s[i]=0;
}
for(int i=0;i<t;i++){
cout<<s[i]<<endl;
}
return 0;
}