我正在编写代理以使采购流程自动化:
let perunitcost = 100;
let agentMaxQty = 60
let agentMaxTotal = 5000
let qtyToBePurchased = 0
这意味着代理商最多可以购买5000美元的产品,但最多只能购买50件产品;因此,在这种情况下,代理将以100(总计5000)的价格购买50个单位。
我可以通过添加for循环和蛮力来做到这一点。但是,他们是否有任何优化方法来做到这一点而又不会遍历所有可能性?
答案 0 :(得分:1)
将可用资金总额除以每单位成本,将其下限以获取可购买的最大单位,并针对agentMaxQty
取最小的 :
const perunitcost = 100;
const agentMaxQty = 60
const agentMaxTotal = 5000
const qtyToBePurchased = Math.min(
Math.floor(agentMaxTotal / perunitcost),
agentMaxQty
);
console.log(qtyToBePurchased);