面试题之空瓶子换水问题及其扩展规律(python实现)

问题描述:
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空 汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满 的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

初步思路:一个空瓶子喝不了水,两个空瓶子可以喝到一瓶水,因此可以采用递归算法实现

代码实现如下:

def f(n):if n < 2:return 0elif n == 2:return 1return f(n-2)+1def solve():for n in sys.stdin:n = int(n.strip())print(f(n))if __name__ == "__main__":solve()

写完代码之后,经过数学分析又发现,结果其实就是n/2
再回头看一开始的思路,一个空瓶子喝不了水,两个空瓶子可以喝到一瓶水
其实已经说明了答案,两个空瓶子可以喝一瓶水,n/2的结果就是这样来的

因此当问题扩展为m个瓶子可以换一瓶水的话
思路不变,m-1个瓶子就可以喝到一瓶水,所以最终的答案为n/(m-1)

有了以上结论之后,代码就可以进一步完善,不用递归,由公式n/(m-1)即可直接得出答案

如有错误,欢迎指正和交流~

面试题之空瓶子换水问题及其扩展规律(python实现)相关推荐

  1. 瓶子换水问题java_空瓶子换水问题

    近期看到有个有趣的问题,我简称为"空瓶子换水"问题,这里分两种情况,一种是有空瓶子,直接换水问题:另一种是知道怎么用空瓶子换水,如果满足一定数量的人喝水,需要至少买多少瓶问题. 这 ...

  2. 15瓶饮料4个空瓶换一瓶_2021江苏公务员考试行测技巧:你会用“空瓶”换水吗?...

    在公务员考试中,除了常见的计算问题.工程问题.行程问题.排列组合等题型外还有一些比较特殊的题型.这些题型的显著特点就是不会用方法的话会非常容易出错,但如果学习会解题的方法就非常的简单了.而中公教育今天 ...

  3. JavaScript算法(实例七)空瓶子换汽水问题

    有这样一道智力题:"某商店规定:三个空汽水瓶可以换一瓶汽水.小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?"答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以 ...

  4. 经典面试题【老鼠喝水】

    经典面试题[老鼠喝水] 面试题库[老鼠喝水] 文章目录 经典面试题[老鼠喝水] 一.常见题目 二.详细思路 1.转换思维 2.转换为熟悉的二进制 三.相似的题型 1.解题思路 2.转换为熟悉的二进制 ...

  5. 基于51单片机的水族箱温度水质监测智能宠物金鱼喂食器补氧换水proteus仿真原理图

    功能介绍: 0.本系统采用STC89C52作为单片机 1.系统实时监测水族箱温度及水质,并定时向WIFI串口发送监测信息 2.当水质超过设定阈值时,启动换水继电器 3.按键可设定阈值,可手动换水,喂食 ...

  6. JavaScript递归(空瓶子换酒)

    项目场景: 某商店出售活动的啤酒.规定每3个空瓶子可以换1瓶啤酒. 我买了40瓶啤酒,喝完后按照规定用空瓶子换啤酒.. 最后我能喝到多少瓶啤酒. 原因分析: 最终喝到的酒 = 给第一次老板兑换的瓶子数 ...

  7. 91、基于STM32的智能投食智能鱼缸鱼塘养殖宠物喂食换水无线系统

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.程序源码 七.资料包括 摘要 由于工作忙.出差.旅游等原因,家中.办公室 ...

  8. 面试题:1000瓶水其中有一瓶水有毒,有10只老鼠并且只要老鼠喝了有毒的水必死。请问怎样通过一次实验找出有毒的那瓶水。

    面试题:1000瓶水其中有一瓶水有毒,有10只老鼠并且只要老鼠喝了有毒的水必死.请问怎样通过一次实验找出有毒的那瓶水. 1.  知识点:二进制. 解题思路:此题考察的是二进制.2的10次方等于1024 ...

  9. python面试题_面试时全对这25道python面试题,成就了我月薪25K!附教程分享)

    之前面试的时候,面试官拿出一些python面试题对我说,只要全部正确直接给我20K,我一看题目笑了,居然全部都会,今天拿出来给大家分享一下~ 面试时全对这25道python面试题,成就了我月薪20K! ...

最新文章

  1. Golang 匿名结构体及测试代码编写技巧
  2. 基于 Zookeeper 的分布式锁实现
  3. 密码技术--非对称加密算法及Go语言应用
  4. boost::mpl模块实现inherit相关的测试程序
  5. crontab文件在哪个目录_目录形式URL与文件形式URL哪个更有利于SEO
  6. php crc32 作用,php的crc32函数使用时需要注意的问题(不然就是坑)
  7. arduino彩灯计时器电路_蓝牙彩灯再升级(加音乐播放功能)
  8. 唏嘘!一代国产手机巨头走向终点:官网已无法访问
  9. security框架工作笔记001--- Shiro和Spring Security对比_智慧城市项目中选型用Spring Security
  10. inner join on, left join on, right join on讲解
  11. MATLAB画圆时却显示椭圆?一个命令解决问题!
  12. Windows 10中检查已安装编解码器的几个方法
  13. 程序员学英语之如何优雅的将单词本导出的txt文本转换为Excel
  14. ERP项目实施方法论
  15. 交通守护者“电子警察”
  16. 突发!阿里巴巴大调整
  17. 腾讯T1~T9级别工程师具备专业的能力及知识点总结。
  18. 基于知识图谱+机器学习,搭建风控模型的项目落地
  19. qt在表格中如何画线_在QtreeWidget中显示表格线,该如何处理
  20. 干货分享~做到这几点可以高效地Revit建模!

热门文章

  1. 解决幂等性问题方法大全
  2. mac 上安装 ettercap-gtk,driftnet
  3. 为什么耳机之间的差距这么大呢
  4. 【算法思考】双目视差求像素深度公式理解
  5. HTML筑基知识点四
  6. Http请求之GET,POST,PUT,DELETE方法详解
  7. 纸牌游戏炸金花设计制作(C语言)
  8. swift——一些有用的小Tips
  9. linux ps -ef和ps -fu,linux ps命令详解
  10. C++ 主函数几种语法