您的位置:首页 > 编程语言 > C语言/C++

2012蓝桥杯本科c语言组最后一题

2012-04-07 21:19 288 查看
题意:

两人玩游戏,有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
<<endl;
}return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  语言 c 游戏