D——取石子(博弈)

链接:https://www.nowcoder.net/acm/contest/75/D
来源:牛客网
取石子问题:http://blog.csdn.net/acmlzq/article/details/51212297

题目描述

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


输入描述:

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

输出描述:

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

输入

2
3

输出

XiaoNiu
XiaoKe


题意:当石子数是是奇数时XiaoNiu先取一个,然后XiaoNiu跟着XiaoKe取,XiaoKe取几个,XiaoNiu就取几个,这样最后XiaoNiu
就可以赢当石子数是偶数时XiaoNiu先取2个,然后XiaoNiu跟着XiaoKe取,XiaoKe取几个,XiaoNiu就取几个,这样最后XiaoNiu就

可以赢。

 1 #include<iostream>
 2 #include<bits/stdc++.h>
 3 #define _f(x,y,z) for(int (x)=(y);(x)<=(z);(x)++)
 4 #define __f(x,y,z) for(int (x)=(y);(x)>=(z);(x)--)
 5 using namespace std;
 6 int main(){
 7     int n; 
 8     while (cin>>n) 
 9     { 
10         if(n <= 2) 
11             cout<<"XiaoNiu"<<endl;
12         else 
13             cout<<"XiaoKe"<<endl;
14     } 
15     return 0; 
16 }

 

 
posted @ 2018-02-04 20:28  明楼  阅读(143)  评论(0)    收藏  举报