大鱼吃小鱼

题目描述

电影里经常出现这样的镜头小鱼总是被大鱼吃掉,而大鱼上面总还有更大的鱼。久而久之,聪明的大鱼或许就不会去吃小鱼了,否则按照传统剧情,它身后会出现一条更大的鱼。一个有趣的问题出现了:倘若所有的鱼都是理性的,那会出现怎样的情况呢?
        假设有 n 条鱼,它们从小到大依次编号为 1, 2, …, n 。我们规定,吃鱼必须要严格按顺序执行。也就是说,大鱼只能吃比自己小一级的鱼,不能越级吃更小的鱼;并且只有等到第 i 条鱼吃了第 i - 1 条鱼后,第 i + 1 条鱼才能吃第 i 条鱼。第 1 条鱼则啥都不能吃,只有被吃的份儿。我们假设,如果有小鱼吃的话,大鱼肯定不会放过;但是,保全性命的优先级显然更高,在吃小鱼之前,大鱼得先保证自己不会被吃掉才行。假设每条鱼都是无限聪明的(并且它们也都知道这一点,并且它们也都知道它们知道这一点),那么第 1 条鱼能存活下来吗?                                                                            

        当只有一条鱼的时候,第一条肯定能存活。                                                                                       

        当有两条鱼的时候,第二条鱼可以肆无忌惮的吃掉第一条鱼。                                                           

        当有三条鱼的时候,假如第二条鱼敢吃第一条鱼的话,第三条鱼是可以无顾忌的吃第二条鱼的,所以第二条鱼为了自保不能吃第一条鱼,所以第一条鱼能够存活。

         那假如有n条鱼呢?             

输入

输入有多组数据,每组数据有一行。

每行为一个n(1<=n<=1000),代表鱼的条数。 

输出

对于每组测试数据输出一行,假如第一条鱼会被吃掉输出YES,否则输出NO。

样例输入

1
2
3

样例输出

NO
YES
NO

umm 先上干货,方便不想看后面的同学,这道题的思路就是判断奇数和偶数,

代码如下:

#include<stdio.h>
int main()
{
    int a;
    while(~scanf("%d",&a))
    {  
        if(a%2==1)
        printf("NO\n");
        else
        printf("YES\n");
    }
     
}
我们遇到这种题目都不要慌,慢慢分析,多列数据,

鱼数      是否被吃

1            0

2            1

3            0

4            1

5            0

6            1

注:1=YSE 0=NO

这里是否还难看出规律呢。

纸和笔是我们的好朋友,遇到题目不要慌。

列几组数据慢慢分析,尝试简化问题,像此题就可以简化成判断奇偶数。

以上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值