zoukankan      html  css  js  c++  java
  • HDU 1527 取石子游戏

    ^^^转载请注明出处,谢谢合作O(∩_∩)O~

    取石子游戏

    Problem Description
    有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
     
    Input
    输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。
     
    Output
    输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。
     
    Sample Input
    2 1 8 4 4 7
     
    Sample Output
    0 1 0
     
    典型的威佐夫博奕:
    #include<iostream>
    using namespace std;
    #include<math.h>
    int main()
    {
        int a,b,k,a1,t;
        while(scanf("%d%d",&a,&b)!=EOF)
        {
            if(a>b)
            {
                t=a;
                a=b;
                b=t;
            }
            k=b-a;
            a1=(int)((sqrt(5.0)+1)/2*k); //注意是sqrt(5.0)而不是5 否则会说格式不对 
            if(a1==a)
            printf("0\n");
            else
            printf("1\n");
        }
        return 0;    
    }
  • 相关阅读:
    08月24日总结
    08月23日总结
    08月22日总结
    装饰器
    卢菲菲最强大脑记忆训练法全套教程 01
    LeetCode 704 二分查找
    LeetCode 1480 一维数组的动态和
    NIO 总结
    LeetCode 881 救生艇
    url的组成部分
  • 原文地址:https://www.cnblogs.com/hsqdboke/p/2447875.html
Copyright © 2011-2022 走看看