Problem Description
C~K 和 PBH 经常玩一个游戏。游戏规则如下:现给定一个 n*n 的棋盘,一个石头被放在棋盘的左上角。
他们轮流移动石头。每一回合,两个人只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。
假如 C~K 先移动石头,而且 C~K 和 PBH 都足够聪明,那么最后谁能赢?
Input
多组输入。
每组输入输入第一行包含一个整数 n(1 <=n <= 1e9),表示棋盘的规模。
当输入 n 为 0 时,表示输入结束。
Output
对于每组数据,如果 C~K 最后能赢,则输出 "C~K",否则输出 "PBH",每一组答案独占一行,输出不包括引号。
Example Input
2 0
Example Output
C~K
附代码:
#include<stdio.h>
int main(){
int i;
int n;
while(scanf("%d",&n),n){
if(n%2==0){
printf("C~K\n");
}
else{
printf("PBH\n");
}
}
}
本题如果按照题意硬做,估计我是想不到了。。。不过受网上指导,通过一些规律性可知,C~K赢的条件即棋盘是偶数,否则为PBH赢。
实则就是一个判断偶奇性的问题!