100个苹果拿最后一个问题

今天面试被问到了一个问题,有100个苹果,两个人,然后每次都能拿1-5个。问怎么样才能保证自己拿到最后一个苹果。
当场我以为是个编程题,哈哈哈,链表模拟一下。结果发现是个智力题。在思考之后想到了从后往前,递归思想。只是没有说清楚。
挂了电话之后便总结一下,顺便做个记录。

思路
我要拿到最后一个苹果,那么我们就要分析,什么时候才能拿到最后一个苹果。一种情况就是对方拿完后只剩一个苹果,那我们就能赢了。那剩下两个呢,剩下三个呢。所以同样的思路,4、5都行。当然,这个剩余的苹果受对方取的影响。那我们如何才能保证对方取完后剩下苹果呢?肯定是大于5个,那具体是多少个呢?这还需要考虑我们能拿的数目,如果对方剩下的数目我们一次取不完,那就还有悬念,所以我们要做的是无论对方取多少个,剩下的我们都能取完。5:5的时候,6才是必须你死我活的解。(具体情况可以自己分析一下)。
思路已经清晰:剩下6个,对方取1个,我们取剩下的5个,对方取5个,我们取剩下的1个。中间情况肯定能完成。那7个呢。如果对方拿1个,就剩下了6个,就成了上面我们分析的情况,无论怎么取,对方都赢。好,只有当6个的时候,情况才能在我们的掌握之中。所以,我们只需要让最后剩下6个苹果,怎么剩下?我们就需要拿第94个苹果,就成了94个取最后一个的问题。逻辑同上,拿到第88个苹果,递归递归递归。拿到第10个苹果,拿到第4个苹果,好了。100%6=4。
答案出来了,如果你先手,先拿四个,然后之后每次拿都保证你两的和是6,这样就能保证最后剩6个苹果。
如果对方先拿,而且对方不知道这个方法,那就还有挽救的办法,想办法让过程中回到上述逻辑中的某个递归点就可以了,这样就又是你的主场了。
如果对方也能想出这个逻辑,那高手过招,一出手你就输了。

其实:这种你死我活的问题,涉及到最后一个的问题,都是倒推的思想,从最后一个的情况,慢慢回溯到开始,结果自然就出来了。

哈哈哈,最后很可爱地听说有些面试官叫这个聪明题。保佑自己上午的面试过了。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值