查看原文
其他

面趣 | 想一想这道题,没准去BAT面试就遇到了呢?

CSDN云计算 2018-11-12

参加 2018 AI开发者大会,请点击 ↑↑↑


问:

游戏设置:这里有一排糖果,两个人分别轮流从中抓取一块或两块(注:抓取的两块必须是挨着的)。

中奖规则:谁拿到了最后的糖果,谁就是胜者!

算法要求:编写一条算法:保证先抓的人一定能赢(可以不写代码,下方留言写出具体的思路)。


思路在下边,不许偷看哦~~



思路:

A、B两个人,

1.如果这里有3块糖果,A先拿走了中间的一块,显而易见,那么无论B怎么拿,A都会赢

2.如果这里有4块糖果,A先拿了中间的2块,同样的,无论B怎么拿,A也都会赢

3.举一反三,如果这里增到五块糖果,A先拿了中间的1块,如果B拿走1块,A就拿和B中心对称的一块,这样A还是会赢。


如果想让先拿的获胜,我们就得出以下规律:

1. 糖果如果是奇数块,先拿的就拿中间的一块;

2. 糖果如果是偶数块,先拿的就先拿中间的两块;

3. 1、2步骤后剩下的只要和对方的基于中心点对称就一定会赢。


你想到了吗,让你的朋友一起来试试吧!

或者你有更好的思路,欢迎下方留言!


欢迎投稿,写出具体的算法!

(是时候展示真正的实力了!!)


1.微信群:

添加小编微信:tangguoyemeng,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


2.征稿:

投稿邮箱:lijy@csdn.net;微信号:tangguoyemeng。请备注投稿+姓名+公司职位。


推荐阅读




扫描以下二维码即可参与“2018 年 CSDN 软件开发者大调查活动”!我们还为你准备了精美的礼品,华为 nova3 智能手机、小爱智能音箱、CSDN 背包、CSDN 定制T恤、数百本技术图书等你来拿!参与即有机会获赠,还等什么,快来试试吧!


↓↓↓  点击【阅读原文】查看「CSDN云计算」往期精彩内容

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存