“买X赠Y”促销的数学计算逻辑及通用公式推导咨询
买X赠Y促销的通用计算公式
给定问题的解法
促销规则:每付费10件,可获赠1件。要计算购买n件商品的总费用,按以下步骤计算:
计算付费商品数量:
每11件商品(10件付费+1件免费)为一组,先算出n中包含多少个完整的11件组,每组可少付1件的钱。
付费件数公式:k = n - floor(n / 11)
(floor()表示向下取整,即取不大于括号内数值的最大整数)计算总费用:
总费用 = 付费件数 × 单价X,最终结果保留两位小数。
验证例子
- 输入:50000 12
付费件数:12 - floor(12/11) = 12-1=11
总费用:11×50000=550000.00,与输出一致。 - 输入:50000 10
付费件数:10 - floor(10/11)=10-0=10
总费用:10×50000=500000.00,与输出一致。
通用"买A赠B"公式
如果促销规则是每付费A件,赠送B件,则通用计算逻辑如下:
- 每组商品总数为
A+B(A件付费+B件免费) - 付费件数公式:
k = n - B × floor(n / (A+B)) - 总费用:
总金额 = X × k
常见场景验证
- 买一赠一(A=1,B=1):
n=4时,k=4 -1×floor(4/2)=4-2=2,总费用2X,符合买2件拿4件的逻辑。 - 买3赠1(A=3,B=1):
n=5时,k=5 -1×floor(5/4)=5-1=4,总费用4X,此时买4件可获赠1件,刚好拿到5件。
内容的提问来源于stack exchange,提问作者NgoMinh
相关产品推荐
相关产品推荐

