列表

详情


QY15. 青草游戏

描述

牛牛和羊羊都很喜欢青草。今天他们决定玩青草游戏。
最初有一个装有n份青草的箱子,牛牛和羊羊依次进行,牛牛先开始。在每个回合中,每个玩家必须吃一些箱子中的青草,所吃的青草份数必须是4的x次幂,比如1,4,16,64等等。不能在箱子中吃到有效份数青草的玩家落败。假定牛牛和羊羊都是按照最佳方法进行游戏,请输出胜利者的名字。

输入描述

输入包括t+1行。 第一行包括一个整数t(1 ≤ t ≤ 100),表示情况数. 接下来t行每行一个n(1 ≤ n ≤ 10^9),表示青草份数

输出描述

对于每一个n,如果牛牛胜利输出"niu",如果羊羊胜利输出"yang"。

示例1

输入:

3
1
2
3 

输出:

niu
yang
niu 

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 224KB, 提交时间: 2019-01-24

#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[])
{
    int i, t, grass;
    
    scanf("%d", &t);
    for(i = 0; i < t; i++)
    {
        scanf("%d", &grass);
        if(grass % 5 == 0 || grass % 5 == 2)
        {
            printf("yang\n");
        }
        else
        {
            printf("niu\n");
        }
    }
    
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 348KB, 提交时间: 2019-06-18

#include <stdio.h>
int dp[10],n,x,i,j;
int main(){
    for(i=1;i<10;i++){
        int flag=0;
        for(j=1;j<=i;j*=4)
            if(dp[i-j]==0) flag=1;
        dp[i]=flag;
    }
    for(scanf("%d",&n),i=0;i<n;i++)
        scanf("%d",&x),printf("%s\n",dp[x%10]?"niu":"yang");
}

上一题