zoukankan      html  css  js  c++  java
  • hdu 2516 取石子游戏

    #include<stdio.h>
    __int64 fb[100];
    void Init()
    {
        //int a=2;
        //int b=3;
        fb[0]=2;
        fb[1]=3;
        for(int i=2;i<50;i++)
        {
            //printf("%d ",a+b);
            fb[i]=fb[i-1]+fb[i-2];
            //printf("%I64d ",fb[i]);
        }
    }
    int main()
    {
        int i,n;
        Init();
        while(scanf("%d",&n)!=EOF&&n)
        {
            for(i=0;i<50;i++)
                if(n==fb[i])break;
            if(i!=50)printf("Second win
    ");
            else printf("First win
    ");
        }
        return 0;
    }
    View Code

    首先 2个石头肯定是必败点,3个石头也是必败点,然后开始看后面,4个石头时,可以去一个使对手到必败点,而对手在这种情况下在必败点是不能赢得,所以4是必胜点。但

    是后面5个石头的情况就不同了,因为5个石头 你肯定不会sb的走到4这个必胜点让对手赢, 但是你发现走到3时,在3这个位置可以直接获胜。 所以5是必败点。

    在往后推几个就会发现。。。必败点满足斐波那契数列。
  • 相关阅读:
    原型1
    可参考的gulp资源
    手机端rem自适应布局实例
    页面变灰效果
    图片上传
    angular学习笔记
    远程页面调试
    drag
    真的了解JS么?
    发现意外之美
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3362365.html
Copyright © 2011-2022 走看看