取球遊戲
- 描述
-
今盒子裏有n個小球,A、B兩人輪流從盒中取球,每個人都可以看到另一個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。
我們約定:
每個人從盒子中取出的球的數目必須是:1,3,7或者8個。輪到某一方取球時不能棄權!
A先取球,然後雙方交替取球,直到取完。
被迫拿到最後一個球的一方爲負方(輸方)
請編程確定出在雙方都不判斷失誤的情況下,對於特定的初始球數,A是否能贏?
- 輸入
- 先是一個整數n(n<100),表示接下來有n個整數。然後是n個整數,每個佔一行(整數<10000),表示初始球數。
- 輸出
- 程序則輸出n行,表示A的輸贏情況(輸爲0,贏爲1)。
- 樣例輸入
-
4 1 2 10 18
- 樣例輸出
-
0 1 1 0
- 來源
- 2012藍橋杯-10
- 上傳者
- 侯颯颯
key point:尋找甲方的必勝點和必敗點
/**
* Project Name: nyoj_2.0
* File Name: 518.cpp
* Created on: 2015年5月19日 下午4:49:09
* Author: jtahstu
* QQ: 1373758426 E-mail:[email protected]
* Copyright (c) 2015, jtahstu , All Rights Reserved.
*/
#include <iostream>
using namespace std;
int main()
{
int a[16]={1,0,1,0,1,0,1,0,1,1,1,1,1,1,1},n,m;//認爲15等於0,所以a[15]看成a[0]即可
cin>>n;
while(n--){
cin>>m;
cout<<a[m%15]<<endl;
}
return 0;
}