首页 > 试题广场 >

青草游戏

[编程题]青草游戏
  • 热度指数:144 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛和羊羊都很喜欢青草。今天他们决定玩青草游戏。
最初有一个装有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
手写博弈树或者打SG函数表,找规律。原题在HDU上,2的幂次
发表于 2018-11-22 10:03:25 回复(0)
//数学问题。。。
#include <iostream>
using namespace std;

int main()
{     int t;     cin >> t;     while (t--) {         int n;         cin >> n;         int f = n % 5;         switch (f) {         case 1:cout << "niu\n"; break;         case 2:cout << "yang\n"; break;         case 3:cout << "niu\n"; break;         case 4:cout << "niu\n"; break;         case 0:cout << "yang\n"; break;         }     }

}

发表于 2018-06-07 17:58:39 回复(0)
#include <iostream>
usingnamespacestd;
 
intmain()
{
    intn;
    cin >> n;
    inti = n, temp = 0;
    while(i--)
    {
        cin >> temp;
        if(temp == 1)
        {
            cout << "niu"<< endl;
            continue;
        }
        intleft = (temp - 1) % 5;
        switch(left)
        {
            case1:
            case4:
                cout << "yang"<< endl;
                break;
            default:
                cout << "niu"<< endl;
                break;
        }
    }
}
// 可以观察总结,1肯定是牛,之后每5个数一循环,分别是羊,牛,牛,羊,牛。
编辑于 2017-12-12 23:03:32 回复(4)