小M的奶酪问题 | 豆包MarsCode AI刷题

137 阅读3分钟

问题描述

题目要求计算小M剩下的奶酪量,已知:

  • 小M原本有 111 公斤奶酪。
  • 小F偷走了 \frac{A}{B} 公斤奶酪。
  • 剩余的奶酪量以分数形式表示,且分母保持为 B。

思路分析

  1. 数学公式

    • 小M剩余奶酪为 1−AB1 - \frac{A}{B}1−BA​: 剩余奶酪量=BB−AB=B−AB\text{剩余奶酪量} = \frac{B}{B} - \frac{A}{B} = \frac{B - A}{B}剩余奶酪量=BB​−BA​=BB−A​
  2. 结果格式

    • 剩余奶酪的分子为 B−AB - AB−A,分母为 BBB。
    • 输出格式为 "{分子}/{分母}"
  3. 边界情况

    • 0≤A≤B0 \leq A \leq B0≤A≤B:小F偷走的奶酪量不会超过 1 公斤,保证计算结果正确。
    • A=0A = 0A=0:小F没偷,输出 1/B
    • A=BA = BA=B:小F偷光,输出 0/B

图解流程

  1. 输入处理

    • 输入偷走的分子 AAA 和分母 BBB。
  2. 计算剩余奶酪的分子部分

    • 分子=B−A\text{分子} = B - A分子=B−A。
  3. 输出分数格式

    • 结果="分子/分母"\text{结果} = \text{"分子/分母"}结果="分子/分母"。

优化代码实现

python
复制代码
def solution(A: int, B: int) -> str:
    # 计算剩余奶酪量的分子部分
    remaining_numerator = B - A
    
    # 格式化输出结果
    result = f"{remaining_numerator}/{B}"
    return result

if __name__ == '__main__':
    # 测试用例
    print(solution(2, 7) == "5/7")  # 小F偷了 2/7 公斤,还剩 5/7 公斤
    print(solution(1, 3) == "2/3")  # 小F偷了 1/3 公斤,还剩 2/3 公斤
    print(solution(3, 5) == "2/5")  # 小F偷了 3/5 公斤,还剩 2/5 公斤

知识总结

  1. 分数的处理

    • 分数的减法运算可统一分母: p1q−p2q=p1−p2q\frac{p_1}{q} - \frac{p_2}{q} = \frac{p_1 - p_2}{q}qp1​​−qp2​​=qp1​−p2​​
    • 结果分子直接通过简单减法计算。
  2. 字符串格式化

    • 使用 Python 的 f-string 格式化字符串:f"{分子}/{分母}"
  3. 边界处理

    • A=0A = 0A=0 时,直接输出 B/B
    • A=BA = BA=B 时,直接输出 0/B

学习计划

  1. 数学运算题型

    • 刷题时关注分数运算、约分、同分母运算等基本技巧。
    • 每周练习至少 5 道与分数运算相关的题目,强化理解。
  2. 边界条件处理

    • 注意分析边界情况,如偷光、未偷等特殊输入。
  3. 代码优化

    • 学习字符串格式化的各种方式,如 f-stringformat 等。

工具运用

  1. 利用 AI 提供代码建议

    • 如果实现过程中遇到错误或效率低下的代码,可以通过 豆包MarsCode AI 检查代码逻辑并优化。
  2. 与学习资源结合

    • 使用在线分数计算工具辅助验证答案。
    • 结合数学基础知识,学习分数运算的规则和应用场景。
  3. 练习建议

    • 对新手来说,先从简单的分数运算题目入手,逐步加深到涉及分数约分或复杂公式的题目。
    • 在解决类似问题时,积累边界条件的处理经验,提升代码的鲁棒性。