菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python 五人分鱼

Document 对象参考手册 Python3 实例

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()

运行结果:

总共有3121条鱼

Document 对象参考手册 Python3 实例

AI 思考中...

5 篇笔记 写笔记

  1. #0

    高寒

    167***[email protected]

    48

    这个代码的思路是:

    让鱼的总数 fish 从 1 开始递增,当 fish 的数量可以满足无论分鱼分配规则,那么这个 fish 值就是合伙捕鱼的最小值。

    for _ in range(5):
     if(total-1)%5==0:
     total=(total-1)//5*4

    高寒

    167***[email protected]

    7年前 (2019年12月27日)
  2. #0

    python门外汗

    yul***yahoo.com

    34

    参考:

    n = 1
    person1 = (n-1)/5
    person2 = (person1 * 4 -1) / 5
    person3 = (person2 * 4 -1) / 5
    person4 = (person3 * 4 -1) / 5
    person5 = (person4 * 4 -1) / 5
    while True:
     
     if int(person1) == person1 and int(person2) == person2 and int(person3) == person3 and int(person4) == person4 and int(person5) == person5:
     break
     
     else: 
     n += 1
     person1 = (n-1)/5
     person2 = (person1 * 4 -1) / 5
     person3 = (person2 * 4 -1) / 5
     person4 = (person3 * 4 -1) / 5
     person5 = (person4 * 4 -1) / 5 
     
    print('There are %d fish in total.' %n)

    python门外汗

    yul***yahoo.com

    7年前 (2019年12月30日)
  3. #0

    jinwei

    350***[email protected]

    27

    递归解法:

    def need(n , r):
     if n % 5 == 1:
     if r == 5:
     return True
     else:
     return need(n - (n - 1) / 5 -1, r + 1)
     else:
     return False
    n = 6
    while True:
     if need(n,1):
     break
     else:
     n = n + 5
    print(n)

    jinwei

    350***[email protected]

    7年前 (2020年01月08日)
  4. #0

    ccneko

    ccn***@163.com

    78

    根据规律可以推出一条公式:

    # n个人总共捕鱼数量为:S = Kn^n-(n-1) K为正整数
    # 最后一个人分得鱼的数量为:S(n) = K(n-1)^(n-1)-1 K为正整数
    # 至少捕鱼数(即K为1)
    def min_fish(n):
     return n ** n - (n - 1)
    if __name__ == '__main__':
     n = int(input('请输入人数:'))
     print('至少捕了{0}条鱼'.format(min_fish(n)))

    ccneko

    ccn***@163.com

    6年前 (2020年02月26日)
  5. #0

    养了一个月亮

    145***[email protected]

    10

    递归形式,其中 x:总的分鱼人数,y=x+1(初始值):

    def five_fish(n,m):
     if n==1: 
     return m 
     else: 
     return five_fish(n-1,m)/0.8+1
    x=int(input("一共有几人分鱼?"))
    y=x+1
    while five_fish(x,y)!=int(five_fish(x,y)): 
     y+=x
    print("那么至少有{}条鱼。".format(five_fish(x,y)))

    养了一个月亮

    145***[email protected]

    6年前 (2020年09月06日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /