博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小乐乐吃糖豆(斐波那契博弈)
阅读量:5337 次
发布时间:2019-06-15

本文共 925 字,大约阅读时间需要 3 分钟。

时间限制:C/C++ 1秒,其他语言2秒

空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

    小乐乐是一个比较喜欢吃糖豆的小孩子,小乐乐的哥哥大乐乐也同样爱吃糖豆。

作为一个小孩子,他们永远觉得谁吃掉了最后一个糖豆,谁吃的糖豆最多。

为了公平起见小乐乐与大乐乐商量吃糖豆的规则如下:

1.     小乐乐与大乐乐轮流吃糖豆。

2.     小乐乐作为弟弟,小乐乐先吃糖豆。

3.     小乐乐第一次可以吃任意不超过n 个糖豆。(n为糖豆初始总数)

4.     后一个人每次能吃【1,前一个人吃的糖豆*2】

    已知有n个糖豆,小乐乐与大乐乐开始分食糖豆,小乐乐与大乐乐都采用最优策略,请问谁能吃到最后一粒糖豆?

输入描述:

第一行输入整数n(2<=n<=1000)。

输出描述:

输出吃到最后一颗糖豆的人的名字。”Small”(小乐乐)/“Big”(大乐乐)。

 

示例1

输入

复制

2

输出

复制

Big

说明

小乐乐只能拿1个,大乐乐会吃掉最后一个。

示例2

输入

复制

4

输出

复制

Small

说明

小乐乐取走一个,大乐乐只能取走【1,2】个,无论大乐乐取走几个小乐乐都会吃掉最后一个。

题解:斐波那契博弈,只需判断是否为斐波那契数即可

代码:

#include
#include
#include
#include
using namespace std;int main(){ int a[105]; int n, i; a[0] = 1; a[1] = 1; for (i = 2; i <= 104; i++) a[i] =a[i - 1] + a[i - 2]; scanf("%d",&n); for (i = 0; i<100; i++) if (n == a[i]) break; if (i == 100) cout << "Small"<

 

转载于:https://www.cnblogs.com/Staceyacm/p/10782060.html

你可能感兴趣的文章
Redis常用命令
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
深入理解jQuery框架-框架结构
查看>>
YUI3自动加载树实现
查看>>