Java实现 谁不爱打牌
谁不爱打牌
【问题描述】
BobLee最近在复习考研,但是他也喜欢打牌(有谁不爱玩牌呢?)。但是作为一名ACMER,斗地主显然满足不了他的兴趣,
于是他和YYD一起YY出来了一个游戏规则,规则如下。
1、 总共n张牌;
2、 双方轮流抓牌;
3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…)
4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者;
BobLee和YYD都是很聪明的人,现在告诉你牌数,请你告诉我谁会赢呢?BobLee先拿。
【输入】
输入为多行数据,每行是牌数n(1<=n<=1000)
【输出】
如果是BobLee赢,就输出BobLee,否则就输出YYD,每次一行
【样例输入】
3
【样例输出】
BobLee
YYD
PS:
我们可以发现一个规律,除了1以外每个拿的数量只能是2的倍数,以至于,
每次拿的数量对3取余就是2
导致只要是三的倍数,后拿的就会取得胜利
例子:n=9
第一个取8,第二个拿1,第二个胜利
第一个取4,第二个取1,第一个取1,二1,一1,二1,第二个胜利
。。。
可以自己慢慢推理,
只要是三的倍数,后拿的就会赢,
package 第二次模拟;
import java.util.Scanner;
public class Demo8谁不爱打牌 {
private static Scanner sc;
private static int n;
public static void main(String[] args) {
sc = new Scanner(System.in);
while(sc.hasNext()) {
n = sc.nextInt();
if(0 == n % 3) {
System.out.println("YYD");
} else {
System.out.println("BobLee");
}
}
sc.close();
}
}