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中的cookielib模拟登录网站
Apr 09 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
Python实现简单遗传算法(SGA)
Jan 29 Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
Python破解极验滑动验证码详细步骤
May 21 Python
Python初学者必备的文件读写指南
Jun 23 Python
Python+Tkinter打造签名设计工具
Apr 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动态生成VRML网页
2006/10/09 PHP
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
Python描述器descriptor详解
2015/02/03 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python中的__slots__示例详解
2017/07/06 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
django框架模板语言使用方法详解
2019/07/18 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
学生思想表现的评语
2014/01/30 职场文书
四年级下册教学反思
2014/02/01 职场文书
护士毕业自我鉴定
2014/02/07 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
服务员岗位职责
2015/02/03 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
基层党建工作简报
2015/07/21 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android