Python经典五人分鱼实例讲解

 更新时间:2021年01月04日 15:20:52   作者:runoob  
在本篇文章里小编给大家分享的是一篇关于Python 五人分鱼的经典小游戏实例内容,有兴趣的朋友们可以学习下。

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批量导入数据进Elasticsearch的实例

    python批量导入数据进Elasticsearch的实例

    今天小编就为大家分享一篇python批量导入数据进Elasticsearch的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python的常见命令注入威胁

    python的常见命令注入威胁

    不过下面可是我们开发产品初期的一些血淋淋的案例,更多的安全威胁可以看看北北同学的《python hack》PPT,里面提及了不只命令执行的威胁,那些都是我们亲身经历的代码
    2013-02-02
  • Python中bisect的用法及示例详解

    Python中bisect的用法及示例详解

    这篇文章主要介绍了Python中bisect的用法及示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 对python中的 os.mkdir和os.mkdirs详解

    对python中的 os.mkdir和os.mkdirs详解

    今天小编就为大家分享一篇对python中的 os.mkdir和os.mkdirs详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 使用Python实现3D曲线拟合

    使用Python实现3D曲线拟合

    曲线拟合是数据分析和数学建模领域中广泛使用的技术,它涉及到寻找最接近一组数据点的数学函数的过程,本文我们将讨论如何使用SciPy库在Python中执行3D曲线拟合,感兴趣的小伙伴可以了解下
    2023-11-11
  • Python中使用glob和rmtree删除目录子目录及所有文件的例子

    Python中使用glob和rmtree删除目录子目录及所有文件的例子

    这篇文章主要介绍了python中使用glob和rmtree删除目录子目录及所有文件的例子,需要的朋友可以参考下
    2014-11-11
  • Python基于scipy实现信号滤波功能

    Python基于scipy实现信号滤波功能

    本文将以实战的形式基于scipy模块使用Python实现简单滤波处理。这篇文章主要介绍了Python基于scipy实现信号滤波功能,需要的朋友可以参考下
    2019-05-05
  • python 网络爬虫初级实现代码

    python 网络爬虫初级实现代码

    这篇文章主要介绍了python 网络爬虫初级实现代码,需要的朋友可以参考下
    2016-02-02
  • python 实现批量替换文本中的某部分内容

    python 实现批量替换文本中的某部分内容

    今天小编就为大家分享一篇python 实现批量替换文本中的某部分内容,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pandas的连接函数concat()函数的具体使用方法

    pandas的连接函数concat()函数的具体使用方法

    这篇文章主要介绍了pandas的连接函数concat()函数的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论