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写xml文件的操作实例
Oct 05 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
Python中MySQL数据迁移到MongoDB脚本的方法
Apr 28 Python
python实现树形打印目录结构
Mar 29 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
python lxml中etree的简单应用
May 10 Python
Python绘制热力图示例
Sep 27 Python
Python列表切片常用操作实例解析
Dec 16 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
Jun 04 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 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计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
js 提交和设置表单的值
2008/12/19 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python日期与时间戳的各种转换示例
2020/02/12 Python
通过python检测字符串的字母
2020/02/18 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
机关党员公开承诺书
2014/08/30 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
Python OpenCV实现图形检测示例详解
2022/04/08 Python