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 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
浅谈Python中的闭包
Jul 08 Python
Python 实现随机数详解及实例代码
Apr 15 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
python破解zip加密文件的方法
May 31 Python
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 Python
FFrpc python客户端lib使用解析
Aug 24 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
python不同系统中打开方法
Jun 23 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 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加密解密函数详解
2015/10/28 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
关于使用js算总价的问题
2017/06/23 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
深入解析Python中的上下文管理器
2016/06/28 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
项目计划书范文
2014/01/09 职场文书
共青团员自我评价范文
2014/09/14 职场文书
小学生作文批改评语
2014/12/25 职场文书
实习单位指导教师评语
2014/12/30 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
初中政治教师教学反思
2016/02/23 职场文书