两个人取一圈石子谁最后取完就赢了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个人取一圈石子谁最后取完就赢了相关的知识,希望对你有一定的参考价值。

题目描述 

小牛和小客玩石子游戏,他们用n个石子围成一圈,小牛和小客分别从其中取石子,谁先取完谁胜,每次可以从一圈中取一个或者相邻两个,每次都是小牛先取,请输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)(1 2 3 4 取走 2 13 不算相邻)

 

输入描述:

输入包括多组测试数据
每组测试数据一个n(1≤n≤1e9)

输出描述:

每组用一行输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)
示例1

输入

2
3

输出

XiaoNiu
XiaoKe
---------------------------------------------------------------------------
思路 :
先按1 2 3 4 5 6 7 手算出结果,由于算错了,一开始以为大于6的数看奇偶,提交后wrong
后来再回过头重新算,发现后手的全赢,提交后ac了,意料之外。
总结 :
找规律,多模拟取石子的过程
#include <cstdio>
#include <iostream>
#include <cstdlib>
using namespace std;
#define INF 0x3f3f3f3f//可以用于memset
int main()
{
    int a;
    while(cin>>a)
    {
        if(a==1||a==2)cout<<"XiaoNiu\n";
        else cout<<"XiaoKe\n";
    }
    return 0;
}

 

以上是关于两个人取一圈石子谁最后取完就赢了的主要内容,如果未能解决你的问题,请参考以下文章

20170908 校内模拟赛 游戏

HDU1536 S-Nim(SG函数)

JZOJ 1211. 取石子游戏

poj 2484 A Funny Game

尼姆博弈

博弈—尼姆博弈