今天面试被问到了一个问题,有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个苹果。
如果对方先拿,而且对方不知道这个方法,那就还有挽救的办法,想办法让过程中回到上述逻辑中的某个递归点就可以了,这样就又是你的主场了。
如果对方也能想出这个逻辑,那高手过招,一出手你就输了。

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

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

100个苹果拿最后一个问题相关推荐

  1. 问题 D: 3.18 买水果   用50元钱买了三种水果。各种水果加起来一共100个。西瓜5元一个,苹果1元一个,桔子1元3个,设计一程序输出西瓜、苹果、桔子各买了几个。

    问题 D: 3.18 买水果 时间限制: 1 Sec 内存限制: 128 MB 提交: 3128 解决: 2239 [提交] [状态] [讨论版] [命题人:tianhl] 题目描述 用50元钱买了三 ...

  2. mysql一张表100亿条数据_一个表有100亿条记录,如何优化

    我们的数据库还在设计阶段.我们预计数据量将会很大,一年的时间里,一张表,就会产生100亿条数据,表结构,如下id,userid,createddate,等等正常情况下,100亿条记录如果都存在一个表里 ...

  3. 桌上有一空盘,最多允许存放一个水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。 试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。

    问题描述:桌上有一空盘,最多允许存放一个水果.爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果. 试用P.V操作实现爸爸.儿子.女儿三个并发进程的同步. 问题分析及思路: 本题 ...

  4. 有12个苹果,其中一个苹果只有质量与其他苹果不一样,现要求用天平秤3次,找出与其他苹果不一样的那个苹果。

    题目: 有12个苹果,其中一个苹果只有质量与其他苹果不一样,现要求用天平秤3次,找出与其他苹果不一样的那个苹果.

  5. 安卓app和苹果app共用一个二维码

    应项目要求,现在安卓app和苹果app共用一个二维码,对外提供下载: <html><head><meta http-equiv="Content-Type&qu ...

  6. (持续更新, 目前含100+工具类) DevUtils 是一个 Android 工具库

    DevUtils Github About (持续更新, 目前含100+工具类) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用. ...

  7. 微信小程序scroll-view高设置100%在苹果6p下的兼容性问题

    微信小程序scroll-view高设置100%在苹果6p下的兼容性问题 home.wxml <view class='main'><view class='crumbs'>&l ...

  8. 手把手教你用苹果CMS做一个电影视频网站 可直接在线播放

    现在大家在网上看电影很方便了,因为电影网站多如牛毛!那很多人在想,做电影网站难么?能否拥有一个属于自己的电影网站呢?其实真的可以,而且很简单下面我们就来手把手的教你如何做一个电影网站!因为我的空间是P ...

  9. 2020-04-30:有一家生产奶酪的厂家,每天需要生产100000份奶酪卖给超市,通过一辆送货车发货,送货车辆每次送100份。 厂家有一个容量为1000份的冷库,用于奶酪保鲜,生产的奶酪需要先存放在

    有一家生产奶酪的厂家,每天需要生产100000份奶酪卖给超市,通过一辆送货车发货,送货车辆每次送100份. 厂家有一个容量为1000份的冷库,用于奶酪保鲜,生产的奶酪需要先存放在冷库,运输车辆从冷库取 ...

最新文章

  1. MySQL 的 count(*) 的优化,获取千万级数据表的总行数
  2. Python学习笔记(三) Python基础
  3. 【渝粤教育】电大中专电商运营实操 (18)作业 题库
  4. c++ linux 环境,C++ 环境设置
  5. JQuery Mobile - 处理图片加载失败!
  6. 7月26日见!华为Mate 20 X 5G正式官宣:国内首款5G双模手机
  7. sql server 并发_并发问题– SQL Server中的理论和实验
  8. redis 值字符串前面部分乱码_解决spring boot redis序列化key-value乱码
  9. JAVA多线程是什么
  10. 夏普ar2048s打印机驱动安装_驱动人生 下载安装打印机驱动的方法
  11. web-登陆界面html-数据库
  12. 4个开源对象存储的解决方案
  13. 复杂材料棱柱体单站RCS
  14. 网页数据提取----网络投票软件开发
  15. asp.net页面中的Console.WriteLine结果如何查看
  16. 银行理财产品怎么做引流?抖音上怎么做理财产品?
  17. 万国数据赢得GITC 年度互联网最佳服务奖
  18. android 实现区域截图
  19. DSP TMS320F280049C——互补波形(一)
  20. FIPS 140-3与140-2的差异-1

热门文章

  1. 翻译 | 正式发布Qt 5.11
  2. 网站并发量的计算方法
  3. 云知声深耕智慧医疗,推出单病种质控平台赋能单病种质量控制
  4. 央视《对话》:家长课堂
  5. 英雄联盟出现game_error_directx的解决办法
  6. 帧定格(用于定格画面添加字幕或者图片)
  7. oracle8i误删除临时表空间后的恢复
  8. js获取前后三个月的时间戳
  9. 一个很好用的vue表单工具,快速进行表单开发
  10. 破解word只读文档 word文档保护后的破解办法