象棋三五七(囧)这样AC了.....

题目:题目链接

Description
Dw放假回家和Daddy下象棋,突然想起有一种象棋游戏叫做象棋三五七,就是有三堆象棋,分别编号为1,2,3。第一堆有3个棋子,第二堆有5个棋子,第三堆有7个棋子,游戏规则如下:
(1)两人交替拿棋子,每次都是DW先拿。
(2)DW第一次只能在指定堆里拿指定数量的棋子。
(3)接下来每人每次能在任意堆里拿任意棋子。
(4)每人每次只能从一堆里拿棋子,不能跨堆拿棋子;
(5)谁拿到最后一个棋子谁就输。
假设Dw和Daddy两个人都很聪明,并且每次都是Dw先拿。Dw想能不能编个程序来计算谁赢呢?但是Dw是个很懒的人,那么现在就由你来替他编写程序吧!

Input
多组输入。
每组数据有一行,包含两个整数k,n(0 < k < 4,0 < n < 8),表示Dw第一次从堆编号为k中拿出n个棋子。
二者都为0时,程序结束。

Output
若Dw赢,则输出“Dw is the winner!!!”,否则,输出“Daddy is the winner!!!”。

Sample Input
2 1
3 1
1 2
0 0

Sample Output
Dw is the winner!!!
Daddy is the winner!!!
Daddy is the winner!!!

这个题目的SG写的真纠结,怎么都不过,竟然这样过了...

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int m, n;
    int a, b, c;
    while(cin >> m >> n)
    {
        if(!m && !n)
            break;
        int sum = 0;
        int a[3];
        a[0] =3;
        a[1] = 5;
        a[2] = 7;
        a[m] -= n;
        for(int i = 0; i< 3; ++i)
            sum ^= a[i];
        if(sum != 0)
            printf("Daddy is the winner!!!\n");
        else
            printf("Dw is the winner!!!\n");
    }
    return 0;
}

囧(/ □ \)...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值