标签:
题目内容:
有一堆石子,A,B两人轮流从中取出石子,每次取出的石子数目只能为1,3,7或8,最后一枚石子谁取到就是输方。A,B两人都足够聪明,不会做出错误的判断。现给出一定数目的石子,A先取石子,计算A最终是输是赢,赢用1表示,输用0表示.
输入描述
第一行为一个整数n(0< n <=100),表示玩n局,接下来n行每行有一个整数,表示对应的局提供的石子数(不大于10000),
输出描述
编程输出A对应的n局是赢是输,赢输出1,输输出0.
输入样例
3
1
3
10
输出样例
0
0
1
#include <iostream> #define MAX 10000 using namespace std; int a[MAX]; void init(){ int i; a[0] = a[2] = 0; a[1] = a[4]= a[3] = a[5] = a[6] = a[7] = a[8]= 1; for(i = 9; i < MAX; i++){ if(a[i-1] && a[i-3] && a[i-7] && a[i-8]) a[i] = 0; else a[i] = 1; } } int main(){ int n,m; cin>>n; init(); while(n--) { cin>>m; //m个石子 cout<<a[m-1]<<endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/fengyanlover/p/5069197.html