Python经典五人分鱼实例讲解


Posted in Python onJanuary 04, 2021

A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。

日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。

B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。

C、D、E依次醒来,也按同样的方法拿鱼。

问他们至少捕了多少条鱼?

def main():
  fish = 1
  while True:
    total, enough = fish, True
    for _ in range(5):
      if (total - 1) % 5 == 0:
        total = (total - 1) // 5 * 4
      else:
        enough = False
        break
    if enough:
      print(f'总共有{fish}条鱼')
      break
    fish += 1


if __name__ == '__main__':
  main()

实例扩展:

#Python3 实例--Python 五人分鱼
print("Python3 实例--Python 五人分鱼")

#原则:

'''日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。

B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。

C、D、E依次醒来,也按同样的方法拿鱼。

问他们台伙至少捕了多少条鱼?(x)
A:(x-1)/5
B:(x-((x-1)/5)-1)/5
C:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5
D:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-1)
E:(x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-((x-((x-1)/5)-((x-((x-1)/5)-1)/5)-1)/5)-1))-1)
'''



def main():
  fish = 1
  while True:
    #默认鱼的数量是够分的,enough = True
    total, enough = fish, True
    #循环步骤:每一个人都按照相同的原则分鱼
    for _ in range(5):
      #"_"符号在循环中不会用到,起的是循环次数的作用,可以看作和i,j是等效的
      #如果正好够5个人分,不需要扔掉一条
      if (total - 1) % 5 == 0:
        #除了第一个人,剩下的鱼的总数为:(total - 1) // 5 * 4,
        # 但是此时流程还没有走完,还未计算鱼的总数
        total = (total - 1) // 5 * 4
      #如果不够一个人分,enough = False,
      # 说明鱼的数量不是最少的,还需要每一个重复步骤上加一条,跳出循环
      else:
        enough = False
        break

    #判断鱼是不是够分,而且鱼的总数取的是最小值
    if enough:

      #若是,输出鱼的总数,结束程序
      print(f'总共有{fish}条鱼')
      break
    #鱼的数量循环加1
    fish += 1


main()

到此这篇关于Python经典五人分鱼实例讲解的文章就介绍到这了,更多相关Python 五人分鱼内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python遍历数组的方法小结
Apr 30 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
Python如何实现定时器功能
May 28 Python
Django windows使用Apache实现部署流程解析
Oct 12 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 #Python
python邮件中附加文字、html、图片、附件实现方法
Jan 04 #Python
python自动化发送邮件实例讲解
Jan 04 #Python
Python Selenium库的基本使用教程
Jan 04 #Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 #Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 #Python
python Scrapy框架原理解析
Jan 04 #Python
You might like
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
Ext 今日学习总结
2010/09/19 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python星号*与**用法分析
2018/02/02 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
如何在Shell脚本中使用函数
2015/09/06 面试题
图书室管理制度
2014/01/19 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
银行先进个人总结
2015/02/15 职场文书
个人先进事迹总结
2015/02/26 职场文书
司机岗位职责范本
2015/04/10 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP