题意:
两人玩游戏,有n个球(n>1),现在规定两人轮流取球,每次只能取1,3,7,8.
规定,谁取得最后一球为输
现在小张先取球,问小张胜败。
输入:
整数 n
输出:
胜利or失败
思路:核心打印必败局势。。。
#include<iostream>
using namespace std;
int a[1005];
int b[]={1,3,7,8};
bool panduan[1005]={0};
int res;
bool _is(int n)
{ int i,j;
for( i=0;i<4;++i)
{
int temp=n-b[i];
for(j=0;j<res;++j)
if(temp==a[j]) return false;//必胜
}
return true;
}
int main()
{
a[0]=1;
res=1;
for(int i=2;i<=1000;++i )
if(_is(i)) a[res++]=i;
for(int i=0;i<res;++i)
panduan[a[i]]=1;
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
cout<<!panduan[n]<<endl;
}return 0;
}