链接:https://www.nowcoder.net/acm/contest/75/D
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
小牛和小客玩石子游戏,他们用n个石子围成一圈,小牛和小客分别从其中取石子,谁先取完谁胜,每次可以从一圈中取一个或者相邻两个,每次都是小牛先取,请输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)(1 2 3 4 取走 2 13 不算相邻)
输入描述:
输入包括多组测试数据
每组测试数据一个n(1≤n≤1e9)
输出描述:
每组用一行输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)
示例1
输入
2 3
输出
XiaoNiu XiaoKe
思路:可以知道先手第一次取要么取1个要么取2个,如果只有1或2个,则他赢了;否则他必将一个圈分为了一条连续的线,对于一条连续的线,后手只要让剩余的线的条数为偶数,他就可以赢得局面,对于一条线他是完全可以做到的,
只要一直去中间即可,所以如果n是大于2的则后手必胜。
#include <iostream> using namespace std; int main(){ int n; while(cin >> n){ if(n == 1 || n == 2){ //或者 n < 3 cout << "xiaoniu" << endl; } else{ cout << "xiaoke" << endl; } } return 0; }