码迷,mamicode.com
首页 > 其他好文 > 详细

打地鼠

时间:2017-09-15 20:19:25      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:log   size   顺序   rgb   include   开始   blog   strong   printf   

[描述]

小明听说打地鼠是一件很好玩的游戏,于是他也开始打地鼠。地鼠只有一只,而且一共有N个洞,编号为1N排成一排,两边是墙壁,小明当然不可能百分百打到,因为他不知道地鼠在哪个洞。小明只能在白天打地鼠,而且每次打了都觉得好累,感觉再也不会打了,必须休息到第二天才能再次打地鼠,也就是说他每天只有一次打地鼠的机会。

地鼠非常聪明,为了尽可能的不被打到,它每天晚上都会跑向相邻的两个洞中的一个,如果一边是墙壁就只有往另一边跑,而且它很固执,每天晚上肯定会跑,也就是说不会连续呆在同一个洞。

尽管小明很累,但是他明白要想拿到一等奖,就必须打到地鼠,所以他想知道怎样才能在最短的天数内保证肯定打到地鼠。

[输入]

输入文件mouse只有一行,该行有一个整数N,表示N个洞并排在一起。地鼠在随机一个洞。

[输出]

输出文件mouse.out只有一行,该行有一个整数,表示小明肯定能打中至少需要的天数。

[样例]

mouse.in

1

mouse.out

1


mouse.in

4

mouse.out

4


[数据范围]

n<=100

 

我们的目的是使地鼠只能在一个洞里

我们假设1为可能出现地鼠,0为不可能,红色为敲的洞穴

先模拟n=4的情况

1 1 1 1

1 0 1 1   第一步

 

0 1 1 1

0 1 0 1   第二步

 

1 0 1 0

1 0 0 0   第三步

 

0 1 0 0   第四步

由此我们发现,敲的顺序是2~n-1,n-1~2

于是猜想ans=(n-2)×2

经模拟n=3,n=5,n=6均为正确

 

 1 #include<cstdio>
 2 int n;
 3 int main()
 4 {
 5     freopen("mouse.in","r",stdin);
 6     freopen("mouse.out","w",stdout);
 7     scanf("%d",&n);
 8     if (n==1) printf("1\n");
 9     if (n==2) printf("2\n");
10     if ((n!=2)&&(n!=1)) printf("%d\n",(n-2)*2);
11     return 0;
12 }

 

 

 

打地鼠

标签:log   size   顺序   rgb   include   开始   blog   strong   printf   

原文地址:http://www.cnblogs.com/Y-E-T-I/p/7527731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!