gpt4 book ai didi

c# - 购物车中的特殊逻辑\算法

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

我正在用 C# 实现一个有购物车的网站。

假设我的数据库中有这些产品

产品A价格50
B品价格50
C品价格50
D品价格50

用户可以将这些产品添加到他的购物车。

现在有报价正在运行。用户可以购买 3 件产品 A 或产品 B(这些的任意组合 - 例如 2 件产品 A 和 1 件产品 B 或全部 3 件产品 A),他将免费获得一件。

(所以在这个例子中,如果他买了 3 件,他必须支付 100,4 件然后支付 150 & 5 件然后他必须支付 200,6 件也是 200)

我如何获得算法\伪代码来实现它?

人的问题在于产品可以按任何顺序添加,例如产品按此顺序添加
一个,一个,一个
或者
2A,B
或者
A,C,D,B,A
或者
A,C,C,A

2A表示他一次添加了2件商品A。(在最后一种情况下,他不会利用该优惠)

请告诉我解决这个问题最简单的方法是什么?谁能指出一些解决此类问题的代码

最佳答案

获取购买的产品 A 和产品 B 的总数,然后除以 3 以查看有多少产品是免费的。例如。

int cost = 50;
int a = numOfProductA();
int b = numOfProductB();
int total = a + b;
int totalFree = total/3;
int totalCost = (total - totalFree)*cost;

可能有一个有效的移动方式来做到这一点,但更多信息会更好 :) 比如获取 A 或 B 的数量有困难吗?一些显示您已经尝试过的代码会很好。

编辑:针对您的评论,这将是非常相似的逻辑。我不会给你代码,因为我相信你可以从我之前的例子中自己弄明白,这会帮助你更好地学习 :) 但是,粗略地说,我会先找到 5 A 的实例,然后删除他们从购买的数量,然后找出 3 个 A 或 B 免费项目。(eg.如果7个A和1个B,发现有5个A的存在,给2个free然后计算剩余,所以2个A和1个B来计算第二个offer)

关于c# - 购物车中的特殊逻辑\算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696556/

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