我有一個物品的購物車,如果我可以將它們放入4,6或12均勻且沒有剩餘的情況下,我可以發貨。然而,我認爲我知道如果我的購物車有8個物品,我的代碼失敗了,因此它會計算出1個剩下的2個,而不是計算它可以在2個4包中工作。 8當然不是唯一可能導致我必須失敗的數字,但它只是一個例子。我怎樣才能讓我的代碼正確地解決這個問題?下面是我現在所擁有的,而即時通訊仍然以8位的$ qTY var作爲失敗的例子。根據總數確定案例數量(4,6,12)
$num12s = $tQTY/12;
$num12s = explode(".", $num12s);
$numCases = $num12s[0];
if($num12s[0] >= 1){
$doSub = $num12s[0] * 12;
$tQTY = $tQTY - $doSub;
}
$num6s = $tQTY/6;
$num6s = explode(".", $num6s);
$numCases = $numCases + $num6s[0];
if($num6s[0] >= 1){
$doSub = $num6s[0] * 6;
$tQTY = $tQTY - $doSub;
}
$num4s = $tQTY/4;
$num4s = explode(".", $num4s);
$numCases = $numCases + $num4s[0];
if($num4s[0] >= 1){
$doSub = $num4s[0] * 4;
$tQTY = $tQTY - $doSub;
}
我需要填寫12首先的情況下,如果我不能做到這一點,我需要填補6下的情況下,如果我不能做到這一點,我需要填補4的情況,但如果我不能做按順序比2例4(對於8號手推車)或1例12例6例和4例(對於22號手推車)等。
有沒有聽說過模運算符? http://php.net/manual/en/language.operators.arithmetic.php – tvanfosson 2012-04-29 13:57:15
請參閱http://en.wikipedia.org/wiki/Bin_packing_problem。 – cmbuckley 2012-04-29 14:47:28