我需要编写一个函数来计算网站中某些选定项目的虚拟值。
如果用户选择1个项目,则没有折扣,值为1。
如果用户选择8个项目,将有一个小折扣,价值将是7。
如果用户选择24个项目,将有一个小折扣,价值将是20。
如果用户选择40个项目,将有一个小折扣,价值将是30。
如果用户选择80个项目,将有一个小折扣,价值将是50。
这是仅有的4个折扣,但它们可以是累计的,所以如果用户选择110(80 + 24 + 6),则值应该是(50 + 20 + 6)。让我们看看其他一些例子:
如果用户选择5项,则值为5。
如果用户选择12项,则值为7+4=11。
如果用户选择23项,则值为7+7+7=21。
如果用户选择24项,则值为20。
如果用户选择77个项目,则值为30+20+7+5=62。
如果用户选择88项,则值为50+7=57。
我希望我能解释清楚。我想我需要使用mod logical操作符,但我不知道如何开始编写这个算法,我想我需要一些帮助。

最佳答案

javascript不是我常用的编程语言,但类似的东西应该可以工作。
这样做的目的是每次都能得到最好的折扣。要知道你可以申请折扣多少次,你只需要取剩余购买项目和申请折扣所需项目之间的商,即如果你有17个项目,需要申请8的折扣,17/8=2,将有1个剩余项目。然后,一旦你知道你申请了多少次折扣,减去项目并继续。

function calculate_price(total_items) {
  var needed =  [1, 8, 24, 40, 80];
  var price = [1, 7, 20, 30, 50];

  var total = 0;
  for (var i = needed.length - 1; i >= 0; --i) {
    var qtt = Math.floor(total_items/needed[i]);
    total_items -= qtt*needed[i];
    total += qtt*price[i];
  }
  return total;
}

关于javascript - 卡住了写一些折扣功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27343272/

10-12 19:35