专栏首页ACM小冰成长之路HDU-2516-取石子游戏

HDU-2516-取石子游戏

ACM模版

描述

题解

Nim 游戏中的斐波那契数列游戏,判断 n 是否为斐波那契数即可。

代码

#include <iostream>

using namespace std;

const int MAXN = 50;

int n;
long long fib[MAXN] = {0, 1, 1};

void init()
{
    for (int i = 3; i < MAXN; i++)
    {
        fib[i] = fib[i - 1] + fib[i - 2];
    }
}

int main(int argc, const char * argv[])
{
    init();

    int flag;
    while (cin >> n && n)
    {
        flag = 1;
        for (int i = 3; i < MAXN; i++)
        {
            if (fib[i] == n)
            {
                flag = 0;
                puts("Second win");
            }
            if (fib[i] > n)
            {
                break;
            }
        }

        if (flag)
        {
            puts("First win");
        }
    }

    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

           以这道题为例,斐波那契博弈就是有一堆石子,两个人轮流取,每次最少取一个,最多取上一次取的数目的两倍,第一次不能取完,最后取完石子的人获胜,那么如果...

    Ch_Zaqdt
  • 博弈论入门之斐波那契博弈

    斐波那契博弈 斐波那契博弈是一种经典的博弈问题 有一堆石子,两个顶尖聪明的人玩游戏,先取者可以取走任意多个,但不能全取完,以后每人取的石子数不能超过上个人的两...

    attack
  • HDU 1527 取石子游戏(威佐夫博弈)

    Problem Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取...

    attack
  • SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败。...

    Angel_Kitty
  • 博弈论进阶之Multi-SG

    Multi-Nim 从最简单的Nim模型开始 它的定义是这样的 有n堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿)或把一堆数量不少于2石子分为两...

    attack
  • POJ 1067 取石子游戏

    取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 40917 ...

    Angel_Kitty
  • POJ 1067-取石子游戏

    Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 1 Accept...

    YINUXY
  • 【 HDU 2177 】取(2堆)石子游戏 (威佐夫博弈)

    两个人轮流取石子,可以取一堆的任意非负整数个或两堆取相同个,先取完的输。 给定若干组数据:a,b表示两堆的石子数量,求先手输还是赢,赢还要求第一步之后的两堆石...

    饶文津

扫码关注云+社区

领取腾讯云代金券