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下Fabric的简单部署方法
Jul 14 Python
Python实现统计文本文件字数的方法
May 05 Python
python基础while循环及if判断的实例讲解
Aug 25 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
python返回数组的索引实例
Nov 28 Python
Python中断多重循环的几种方式详解
Feb 10 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
如何用python绘制雷达图
Apr 24 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-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
PHP实现的json类实例
2015/07/28 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
Python入门篇之正则表达式
2014/10/20 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
python字符串反转的四种方法详解
2019/12/02 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
单身旅行者的单身假期:Just You
2018/04/08 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
酒店总经理岗位职责范本
2014/08/08 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
地震慰问信
2015/02/14 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
2015年国培研修感言
2015/08/01 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL