-1

割引計算:

Product quantity and range

1  - 10    -    1%
11 - 20    -    2%
21 - 30    -    3%
31 - 40    -    4%
41 - 50    -    5%

上記は数量範囲とその割引率です。

for example:
each product cost is 100
if i purchase 50 product then 5% discount is 250


Now if i purchase 50 products at 2 terms let say 20 and 30 then
for 20 product 2% discount = 40
for 30 product 3% discount = 90
total discount             = 130

しかし、ここでは 250 の割引を受けなければなりません。

問題の説明: 製品は最大数量の n 期間で購入できます。ここでは最大数量は 50 です。購入した製品の割引率は上記の範囲から与えられます。合計割引が追加されると、それは等しくなるはずです。ここでは、50 個の製品を購入すると 250 が割引として提供されます。同じ 250 は、製品が期間で 20、10、10、または 25、25 として購入された場合でも、合計割引になるはずです.....

plzは、いくつかの式または何かを使用して、計算部分で私を助けてくれます....

4

2 に答える 2

1

購入するアイテムの数が増えるにつれて割引率を常に上げてほしいと思いますが、その場合、これを行う方法はありません

これがロジックです。基本的な方程式は次のとおりです。

n 1 d 1 + n 2 d 2 + n 3 d 3 =(n 1 + n 2 + n 3)d x

これに対する明らかな解決策の1つは、すべてのdを等しくすることです。つまり、すべての割引率を同じにすることです。そうでなければ、一般的な解決策はありません(つまり、すべてのnの組み合わせで機能するdのセットはありません-たとえば、nの1つを除くすべてがゼロの場合、方程式の両側のdは同じである必要があります、したがって、唯一の一般的な解決策は、すべてのdが同じであるということです)、異なるdを持つ特定の解決策が必要な場合は、nのセットが与えられたときにdの正しい値を解決できますが、それを行うと、 dの1つはdxよりも小さくもう1つは大きくする必要があるため、割引率を厳密に上げることはできません。

于 2012-08-04T20:47:52.120 に答える
1
  1. 前のアイテム数の割引を計算します。(以前にどのくらいの割引が与えられましたか。)
  2. 新しいアイテム数の割引を計算します(前の注文と現在の注文)。(顧客が持つべき割引額。)
  3. 2つの値の差として最終割引を与えます。
  4. 顧客の(各タイプの)新しいアイテム数をデータベースに保存します。
float SimpleDiscount(float cost, int count)
{
    if (count <= 0) return 0;
    if (count <= 10) return 0.01f * cost;
    if (count <= 20) return 0.02f * cost;
    if (count <= 30) return 0.03f * cost;
    if (count <= 40) return 0.04f * cost;
    return 0.05f * cost; // count > 40
}

float GetDiscount(int customerId, int itemId, int count)
{
    float cost = GetItemCost(itemId);

    int previousCount = GetCustomerOrderedItemCount(customerId, itemId);
    float previousDiscount = SimpleDiscount(cost, previousCount);

    int newCount = previousCount + count;
    float newDiscount = SimpleDiscount(cost, newCount);

    SaveCustomerOrderedItemCount(customerId, itemId, newCount);

    return newDiscount - previousDiscount;
}

例えば:

Item cost = 100
For 20 items: Discount = 40 (2%)
For 30 items: Discount = 210 (7%)
Total discount = 250 (5%)
于 2012-08-03T02:01:29.680 に答える