题目描述
电影里经常出现这样的镜头小鱼总是被大鱼吃掉,而大鱼上面总还有更大的鱼。久而久之,聪明的大鱼或许就不会去吃小鱼了,否则按照传统剧情,它身后会出现一条更大的鱼。一个有趣的问题出现了:倘若所有的鱼都是理性的,那会出现怎样的情况呢?
假设有 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
这里是否还难看出规律呢。
纸和笔是我们的好朋友,遇到题目不要慌。
列几组数据慢慢分析,尝试简化问题,像此题就可以简化成判断奇偶数。
以上。