我有一个编码问题,要求:我们想制作一排目标英寸长的砖块。我们有一些小砖块(每块 1 英寸)和大砖块(每块 5 英寸)。如果可以通过从给定的积木中进行选择来实现目标,则返回真。这比看起来要难一点,并且可以在没有任何循环的情况下完成。例子是:L511_makeBricks(3, 1, 8) → 真L511_makeBricks(3, 1, 9) → 错误L511_makeBricks(3, 2, 10) → 真。我写了以下代码:public boolean L511_makeBricks(int small, int big, int goal) { int smalln; int bign; smalln = 0; bign = 0; while (smalln <= small){ while (bign<= big) { if (smalln + bign*5 == goal){ return true; }else{ bign = bign + 1; } } bign = 0 ; smalln = smalln + 1; } return false;}当我运行这个问题时,它说除了“其他”之外的每个测试运行都是正确的,它运行更多的例子来检查它是否正确。我看不出我的代码哪里出了问题。我的代码应该做的是遍历小砖块和大砖块的每种可能组合。
1 回答
富国沪深
TA贡献1790条经验 获得超9个赞
尝试这个:
public boolean L511_makeBricks(int small, int big, int goal) {
if (big * 5 + small < goal) {
return false;
}
return goal % 5 <= small;
}
添加回答
举报
0/150
提交
取消