我如何计算如何申请家庭票折扣,然后收取所有剩余的门票的相关费用(即成人票的费用高于儿童票) ?
下面是我到目前为止所得到的成果(看起来很有效,但不是100%的自信(php))
# Work out how many pairs of people there are
$numAdultPairs = floor($oForm->adult / 2);
$numChildPairs = floor($oForm->child / 2);
# work out the number of matching pairs for child / adult
if ( $numAdultPairs > $numChildPairs ) {
$numberOfFamilyTickets = $numAdultPairs - $numChildPairs;
} else if ( $numAdultPairs < $numChildPairs ){
$numberOfFamilyTickets = $numChildPairs - $numAdultPairs;
} else if ( $numAdultPairs == $numChildPairs ) {
$numberOfFamilyTickets = $numAdultPairs;
}
# work out the remaining tickets required
$remainingAdult = $oForm->adult % 2;
$remainingChild = $oForm->child % 2;
发布于 2009-02-02 09:35:13
我不认为你的方法真的有效。假设你有6个成年人和4个孩子。在这种情况下,您的第一个if
将是真的,您将得到3 - 2 = 1
家庭票。正确的结果是两张家庭票和两张成人票。
您想要最低的配对数来确定家庭票的数量。试着做这样的事情:
$numberOfFamilyTickets = min($numAdultPairs, $numChildPairs);
$remainingAdult = $oForm->adult - 2 * $numberOfFamilyTickets;
$remainingChild = $oForm->child - 2 * $numberOfFamilyTickets;
假设您确保$oForm->adult
和$oForm->child
是非负的。
发布于 2009-02-02 09:27:53
类似的东西(伪代码):
adultPairs = totalAdults / 2
childPairs = totalChildren / 2
familyPairs = min(adiltPairs, childPairs)
adults = totalAdults - familyPairs * 2
children = totalChildren - familyPairs * 2
发布于 2009-02-02 09:51:37
也许是这样..。
最小族= min(NumberOfAdults,NumberOfChildren)/2
RemaningAdults = NumberOfAdults -(最小族* 2)
RemainingChildren = NumberOfChildren -(最小族* 2)
编辑:多余的评论。以上两句话都很有道理,我只是插嘴说:
https://stackoverflow.com/questions/502657
复制相似问题