1056-取石子游戏II

取石子游戏II
描述

一堆石子有n个,两人轮流取.每次取最少取1个,最多取m个。取完者胜.先取者负输出"Second win".先取者胜输出"First win"

输入
多组测试数据。

每组测试数据包含2个正整数n,m。(n,m<=10000000)

输出
对于每组测试数据,输出谁获胜.
输入样例:
2 1
3 2
3 1
输出样例:
Second win
Second win
First win
巴什博弈:有一个含有n个物品的堆,两个人轮流从这堆物品中取物品, 规定每次至少取一个,最多取m个。最后取光者获胜。问你最后谁能获得胜利?
结论:如果n = m + 1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够保证一次拿走剩余的物品,所有后者取胜。
所以如果 n%(m+1) !=0 ,这种情况下 按照上述所说的方法则先手获胜。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        if(n%(m+1)==0)
            printf("Second win\n");
        else
            printf("First win\n");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值