我碰到這個問題javabat(http://www.javabat.com/prob/p183562)傳來:一個java實踐問題
我們希望使磚的一排 是目標英寸長。我們有一個小號磚(每個1英寸)和大號 磚(每個5英寸)的號碼 。如果 返回true,可以通過 從給定的磚塊中選擇目標。這 比看起來有點難, 可以完成沒有任何循環。
makeBricks(3,1,8)→真
makeBricks(3,1,9)→假
makeBricks(3,2,10)→真
我想出了這個解決方案:
public boolean makeBricks(int small, int big, int goal) {
if (goal > small + big * 5)
return false;
else if (goal % 5 == 0)
return goal/5 <= big;
else
return goal % 5 <= small;
}
這通過了測試。但我自己找到了一個反例:makeBricks(10,0,10) - > true。我的邏輯將返回false。我應該如何解決我的邏輯?還是有更好的方法來做到這一點?
這當然是......實踐問題之一在一個Java和Python的學習網站上... codingbat.com – 2011-04-02 05:43:22