Javascript最佳价格取决于数量代码备选方案

Javascript最佳价格取决于数量代码备选方案,javascript,Javascript,任何人都可以提出一种方法,通过循环或if语句或类似的东西来实现相同的数学结果?只是想学习解决同一问题的不同方法 它需要根据数量计算最佳价格,因此如果数量为5,则价格将为2的价格和3的价格 // get inputs let qty = document.getElementById("quantity").value; // base prices let price = 6.45; let price2 = 12.0; let price3 = 14.

任何人都可以提出一种方法,通过循环或if语句或类似的东西来实现相同的数学结果?只是想学习解决同一问题的不同方法

它需要根据数量计算最佳价格,因此如果数量为5,则价格将为2的价格和3的价格

// get inputs

  let qty = document.getElementById("quantity").value;

// base prices

  let price = 6.45;
  let price2 = 12.0;
  let price3 = 14.0;
 
    //calc total with best deal

    let total1 = Math.floor((qty % 3) % 2) * price;
    let total2 = Math.floor((qty % 3) / 2) * price2;
    let total3 = Math.floor(qty / 3) * price3;
    let totalPrice = total1 + total2 + total3;

您可以使用这种更通用的方法:

数量=10; //每个元素a[i]表示购买数量为i+1的物品的价格。 让bundlePrices=[6.45,12.0,14.0]; 让totalPrice=0; 当数量>0时{ 让itemsInBundle=bundlePrices.length 设bundlePrice=bundlePrices[bundlePrices.length-1]; 设numBundles=Math.floorqty/itemsInBundle; 总价格+=数量*捆绑价格; 数量-=numBundles*itemsInBundle; bundlePrices.pop; }
console.logtotalPrice;如果这是的一个后续问题,你可能想添加一些背景信息,使这个问题本身更清楚。是的,我不明白你想达到什么目的。为什么要使用模?我看不到if条件是除以该数字后的余数运算符。@lastr2d2我只是想将这个运算符与原始运算符分开,以获得不同的数学方法。我用模来得到输入数字的剩余部分除以3,看看这个数字中有多少个3,并将正确的价格存储在总计1,2,3个变量中,以便在最后进行计算。这是一个很好的速度问题,如果有人不知道另一个的话,那就更好了。。。例如,描述什么是最好的价格,当前的计算是如何进行的,预期的结果是什么等等谢谢你的回答@Michael Horn这非常有帮助