天天看點

BNU4210

題目:題目連結

題意:題目的意思就是說給你一堆石子。這裡的取石子規則是第一個人拿石子時不能全部拿走。後面的人取石子的時候索取的石子數目不能超過前面的人拿走的數目。現在給你石子的個數,問你最後的結果。

分析:找規律,當石子的數目是2的幂次的時候,處于必敗态。

代碼:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <vector>

using namespace std;

int main()
{
    int t;
    scanf("%d", &t);
    while(t--)
    {
        int n;
        scanf("%d", &n);
        if(n == 1)
            printf("0\n");
        else
        {
            int fp = 0;
            while(1)
            {
                if(n == 1)
                {
                    fp = 1;
                    break;
                }
                if(n % 2 == 1)
                {
                    fp = 0;
                    break;
                }
                n /= 2;
            }
            if(!fp)
                printf("1\n");
            else printf("0\n");
        }
    }
    return 0;
}