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实现sublime3的less编译插件示例
Apr 27 Python
Python常用模块用法分析
Sep 08 Python
pymongo为mongodb数据库添加索引的方法
May 11 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
Python3 实现串口两进程同时读写
Jun 12 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
keras 指定程序在某块卡上训练实例
Jun 22 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
python爬虫使用scrapy注意事项
Nov 23 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
使用Apache的rewrite技术
2006/06/22 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
怎么清空javascript数组
2013/05/11 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
vue登录注册实例详解
2019/09/14 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
pygame播放音乐的方法
2015/05/19 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Python全局变量用法实例分析
2016/07/19 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
python3将变量输入的简单实例
2020/08/19 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
什么是岗位职责
2013/11/12 职场文书
业务员辞职信范文
2015/03/02 职场文书
小马王观后感
2015/06/11 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers