• hdu 2516 取石子游戏 (斐波那契博弈)


    题意:1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。

             取完者胜,先取者负输出"Second win",先取者胜输出"First win".

    思路:很明显这是一个斐波那契博弈,当且仅当 n 为斐波那契数时先手必败 

    代码:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int n;
        int f[45];
        f[0]=2;
        f[1]=3;
        for(int i=2;i<45;i++)
          f[i]=f[i-1]+f[i-2];
        while(cin>>n&&n)
        {
            int flag=1;
            for(int i=0;i<45;i++)
            if(f[i]==n)
            {
                flag=0;break;
            }
            if(flag) cout<<"First win"<<endl;
            else cout<<"Second win"<<endl;
        }
        return 0;
    }
  • 相关阅读:
    cookie的路径
    cookie的生命
    cookie详解
    cookie简介&用途
    编码
    请求转发和重定向的区别
    request:域
    request:请求转发,请求包含
    常用的html语法
    request:获取请求的URL
  • 原文地址:https://www.cnblogs.com/simplekinght/p/6171221.html
Copyright © 2020-2023  润新知