While 循环不适合所有检查

我有一个编码问题,要求:


我们想制作一排目标英寸长的砖块。我们有一些小砖块(每块 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;

}

当我运行这个问题时,它说除了“其他”之外的每个测试运行都是正确的,它运行更多的例子来检查它是否正确。


我看不出我的代码哪里出了问题。我的代码应该做的是遍历小砖块和大砖块的每种可能组合。


喵喔喔
浏览 80回答 1
1回答

富国沪深

尝试这个:public boolean L511_makeBricks(int small, int big, int goal) {&nbsp; &nbsp; if (big * 5 + small < goal) {&nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; }&nbsp; &nbsp; return goal % 5 <= small;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java