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中的MongoDB基本操作:连接、查询实例
Feb 13 Python
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
Python for循环中的陷阱详解
Jul 13 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
Python字符串对象实现原理详解
Jul 01 Python
python装饰器原理与用法深入详解
Dec 19 Python
tensorflow 实现数据类型转换
Feb 17 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
python 日志 logging模块详细解析
Mar 31 Python
python解释器安装教程的方法步骤
Jul 02 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
Python语言内置数据类型
Feb 24 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
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
php常用表单验证类用法实例
2015/06/18 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
XENON基于JSON变种
2010/07/27 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
jquery图片切换插件
2015/03/16 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
母亲80寿诞答谢词
2014/01/16 职场文书
平安校园建设方案
2014/05/02 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL