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基于PycURL实现POST的方法
Jul 25 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
python读取当前目录下的CSV文件数据
Mar 11 Python
Python视频编辑库MoviePy的使用
Apr 01 Python
python操作链表的示例代码
Sep 27 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
Pandas数据分析的一些常用小技巧
Feb 07 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程序
2006/10/09 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
Javascript之文件操作
2007/03/07 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
走出JavaScript初学困境—js初学
2008/12/29 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
python编程的核心知识点总结
2021/02/08 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
酒店实习个人鉴定
2013/12/07 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
《火烧云》教学反思
2014/04/12 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
小学生通知书评语
2014/12/31 职场文书
活动费用申请报告
2015/05/15 职场文书
结婚司仪主持词
2015/06/29 职场文书