虽然循环不适合所有检查

时间:2019-07-30 01:18:27

标签: java

我遇到一个编码问题,询问:

我们要制造一排目标长为英寸的砖块。我们有许多小砖(每个1英寸)和大砖(每个5英寸)。如果可以通过选择给定的砖块来达成目标,则返回true。这比看起来要难一些,并且可以完成而无需任何循环。

例如:

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 个答案:

答案 0 :(得分:0)

尝试一下:

public boolean L511_makeBricks(int small, int big, int goal) {
    if (big * 5 + small < goal) {
        return false;
    }
    return goal % 5 <= small;
}