nyoj833取石子(七)

这道题其实我是不会的,但是我手上有万能的百度啊,上网搜了一下,结果就出来了,多看了几篇题解之后,我就懂了,是这样的,他是一种对称博弈,只要第一个人取走一部份,然后下一个人就将这堆石子分成两个对称的部分,前一个人在那堆石子里取几个石子,另外一个就做相同的动作,然后后者一定会赢,大概如此,代码如下。

描述

    Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个,Hrdv先取,输出胜利着的名字。

输入
    输入包括多组测试数据。
    每组测试数据一个n,数据保证int范围内。
输出
    输出胜利者的名字。
样例输入

    2
    3

样例输出

    Hrdv
    Yougth
#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        if(n>2)cout<<"Yougth"<<endl;
        else cout<<"Hrdv"<<endl;

    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_39587440/article/details/78242564