Python实现马蹄铁数量校验函数遇阻,求正确实现方案
修正后的Python代码及说明
首先明确问题核心逻辑:每匹马需要4个蹄铁,因此先计算马匹所需的总蹄铁数量 total_needed = k * 4,再对比现有数量 p:
- 当
p < total_needed:缺失数量为total_needed - p - 当
p > total_needed:剩余数量为p - total_needed - 当两者相等:输出
OK
修正后的代码
def check(p, k): total_needed = k * 4 if p < total_needed: print(f"Missing: {total_needed - p}") elif p > total_needed: print(f"Remaining: {p - total_needed}") else: print("OK") check(20, 6) check(10, 2) check(12, 3) check(13, 3)
输出验证
运行上述代码后,输出与期望完全一致:
Missing: 4 Remaining: 2 OK Remaining: 1
原代码问题分析
原代码的逻辑完全偏离了任务核心:
- 错误加入了与问题无关的奇偶性判断
- 误用取余运算判断数量是否合适,忽略了每匹马需要4个蹄铁的关键条件
- 剩余/缺失数量的计算公式完全错误
内容的提问来源于stack exchange,提问作者regular_everyday_pythonist
相关产品推荐
相关产品推荐

