【趣学Python算法100例】出售金鱼

问题描述

小明将养的一缸金鱼分5次出售:第1次卖出全部的一半加1/2条;第2次卖出余下的三分之一加1/3条;第3次卖出余下的四分之一加1/4条;第4次卖出余下的五分之一加1/5条;最后卖出余下的11条。试编程求出原来鱼缸中共有多少条金鱼。

问题分析

要解这个问题,我们可以设原来鱼缸中有 ( x ) 条金鱼。根据题意,我们可以逐步逆推计算每次出售后的剩余金鱼数量。

  1. 第五次出售前剩余:11 条。
  2. 第四次出售后剩余数量:

设出售前为 ( y ),可以得出:

整理得到:

所以第四次出售前有 14 条。

  1. 第三次出售后剩余数量:

设出售前为 ( z ):

整理得到:

所以第三次出售前有 19 条。

  1. 第二次出售后剩余数量:

设出售前为 ( w ):

整理得到:

所以第二次出售前有 29 条。

  1. 第一次出售后剩余数量:

设出售前为 ( v ):

整理得到:

最终,原来鱼缸中共有 59 条金鱼。

完整的程序

根据上面的分析,编写程序如下:

python 复制代码
def calculate_fish():
    # 从最后一步推回去
    remaining = 11  # 第五次出售后的剩余金鱼数量

    # 第四次出售
    fourth_before = (remaining + 1 / 5) * 5 / 4

    # 第三次出售
    third_before = (fourth_before + 1 / 4) * 4 / 3

    # 第二次出售
    second_before = (third_before + 1 / 3) * 3 / 2

    # 第一次出售
    first_before = (second_before + 1 / 2) * 2

    return int(first_before)

# 计算原来金鱼的数量
original_fish_count = calculate_fish()
print("原来鱼缸中共有多少条金鱼:", original_fish_count)

运行结果

在vscode下运行程序,结果如下图所示。由输出结果可知,原来鱼缸中共有59条金鱼。

相关推荐
chian-ocean2 小时前
Bright Data 代理 + MCP :解决 Google 搜索反爬的完整方案
人工智能·python
GIS小天2 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年8月25日第170弹
人工智能·算法·机器学习·彩票
PAK向日葵3 小时前
【算法导论】XM 0823 笔试题解
算法·面试
岁月栖迟4 小时前
leetcode 49. 字母异位词分组
windows·算法·leetcode
Asmalin4 小时前
【代码随想录day 21】 力扣 77. 组合
算法·leetcode·职场和发展
你的人类朋友6 小时前
【操作系统】Unix和Linux是什么关系?
后端·操作系统·unix
AndrewHZ6 小时前
【python与生活】如何用Python写一个简单的自动整理文件的脚本?
开发语言·python·生活·脚本·文件整理
binbinaijishu886 小时前
Python爬虫入门指南:从零开始的网络数据获取之旅
开发语言·爬虫·python·其他
uzong7 小时前
半小时打造七夕传统文化网站:Qoder AI编程实战记录
后端·ai编程
快乐就是哈哈哈7 小时前
从传统遍历到函数式编程:彻底掌握 Java Stream 流
后端