我有一個編碼問題,要求:我們想制作一排目標英寸長的磚塊。我們有一些小磚塊(每塊 1 英寸)和大磚塊(每塊 5 英寸)。如果可以通過從給定的積木中進行選擇來實現(xiàn)目標,則返回真。這比看起來要難一點,并且可以在沒有任何循環(huán)的情況下完成。例子是: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條經(jīng)驗 獲得超9個贊
嘗試這個:
public boolean L511_makeBricks(int small, int big, int goal) {
if (big * 5 + small < goal) {
return false;
}
return goal % 5 <= small;
}
添加回答
舉報
0/150
提交
取消