我正在实现一个在 c# 中有购物车的网站。
假设我的数据库中有这些产品
产品 A 价格 50
产品 B 价格 50
产品 C 价格 50
产品 D 价格 50
用户可以将这些产品添加到他的购物车。
现在有一个报价正在运行。用户可以购买 3 件产品 A 或产品 B(这些产品的任意组合 - 产品 A 的示例 2 和产品 B 的示例 2 或产品 A 的所有 3 件),他将免费获得一件。
(所以在这个例子中,如果他买了 3 件,他必须支付 100,4 然后支付 150 和 5 件,然后他必须支付 200,6 件也支付 200)
我如何获得一个算法\伪代码来实现这个?
人的问题在于产品可以按任何顺序添加,例如产品按
A、A、A
或
2A、B
或
A、C、D、B、A
或
A、C、C、A 的顺序添加
2A 表示他在一个动作中添加了 2 件产品 A。(在最后一种情况下,他不会利用该提议)
请告诉我解决这个问题的最简单方法是什么?谁能指出一些解决此类问题的代码