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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
Python获取邮件地址的方法
Jul 10 Python
Python中字符串的处理技巧分享
Sep 17 Python
django批量导入xml数据
Oct 16 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
Python 实现在文件中的每一行添加一个逗号
Apr 29 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
Python列表对象实现原理详解
Jul 01 Python
python中append实例用法总结
Jul 30 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
Aug 05 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
Python reduce函数作用及实例解析
May 08 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在文件指定行中写入代码的方法
2012/05/23 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
飞利浦法国官网:Philips法国
2019/07/10 全球购物
学生宿舍管理制度
2014/01/30 职场文书
采购部经理岗位职责
2014/02/10 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
介绍信怎么写
2015/05/05 职场文书
师范生教育见习总结
2015/06/23 职场文书
高中运动会前导词
2015/07/20 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
简单聊聊Golang中defer预计算参数
2022/03/25 Golang