gpt4 book ai didi

javascript - 坚持写一点折扣功能

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:18 25 4
gpt4 key购买 nike

我需要编写一个函数来计算网站中某些选定项目的虚拟值(value)。

  • 如果用户选择了 1 件商品,则没有折扣,该值将为 1。
  • 如果用户选择 8 件商品会有一点折扣,值(value)将为 7。
  • 如果用户选择 24 件商品,则会有一点折扣,值(value)为 20。
  • 如果用户选择 40 件商品,则会有一点折扣,值(value)为 30。
  • 如果用户选择 80 件商品,则会有一点折扣,值(value)为 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 逻辑运算符,但我不知道如何开始编写这个算法,我想我需要一点帮助。

最佳答案

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com