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编程中三条常用的技巧
May 11 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
Python函数的周期性执行实现方法
Aug 13 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
Python rstrip()方法实例详解
Nov 11 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
python3.5安装python3-tk详解
Apr 26 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
深入了解Python iter() 方法的用法
Jul 11 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
python获得命令行输入的参数的两种方式
Nov 02 Python
python3中布局背景颜色代码分析
Dec 01 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使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
window.onload使用指南
2015/09/13 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
在windows系统中实现python3安装lxml
2016/03/23 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
植物选择:Botanic Choice
2017/02/15 全球购物
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
国际政治个人自荐信范文
2013/11/26 职场文书
小学作文评语大全
2014/04/21 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
幼儿园开学通知
2015/04/24 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS