You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

codingbat的make_bricks题目代码测试不通过求排查提示

问题根源

你当前代码的错误来自于逻辑条件设计完全错误:大量互不相干的条件用or连接,很多条件本身逻辑就是反向的(比如small+big!=goal只要成立就返回True,这显然和需求完全相悖),没有覆盖「总砖块总长度是否足够、剩余需要补的小砖数量是否足够」这两个核心判断逻辑。

正确解题思路

不需要循环,两步即可完成判断:

  1. 首先计算我们最多能使用的大砖块数量:取「现有大砖数量big」和「目标长度最多能容纳的大砖数量goal // 5」的较小值,记为used_big
  2. 计算使用上述数量大砖后,剩余需要补齐的长度:remaining = goal - used_big * 5
  3. 只要剩余长度小于等于你拥有的小砖数量small,且剩余长度≥0,就返回True,否则返回False

正确代码示例

def make_bricks(small, big, goal):
    used_big = min(big, goal // 5)
    remaining = goal - used_big * 5
    return remaining <= small and remaining >= 0

错误用例验证

我们拿你报错的三个测试用例逐一验证:

  • make_bricks(3, 1, 9):used_big = min(1, 9//5=1) =1,剩余长度9-5*1=4,4>3,返回False,符合预期
  • make_bricks(3, 2, 9):used_big = min(2, 9//5=1) =1,剩余长度9-5*1=4,4>3,返回False,符合预期
  • make_bricks(1, 4, 12):used_big = min(4, 12//5=2) =2,剩余长度12-5*2=2,2>1,返回False,符合预期

内容的提问来源于stack exchange,提问作者Krzysztof Kaczmarek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:39:00