На мою конечную точку приходит запрос — список статей
Код: Выделить всё
public class Article
{
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
}
Вот мой алгоритм, который я написал на данный момент
Код: Выделить всё
if (purchasedQuantity >= minPurchaseQuantity)
{
var c = 0;
foreach (var article in articlesForPackage.OrderByDescending(a => a.UnitPrice))
{
for (var i = 1; i payFor)
{
c = 0;
result.Add(new Discount
{
Value = article.UnitPrice
});
}
}
}
}
Когда определена скидка на пакет, купите 3 и заплатить за 2 это работает, но если купить 3, заплатить за одного не получится.
Может кто-нибудь мне помочь?
Вот как должен работать алгоритм:
У нас есть 3 статьи
1 Арт1 - 20$
2 Арт2 - 30$3 Art3 - 40$
Если minPurchaseQuantity равно 3, а payFor равно 2, это означает, что стоимость Art1 должна быть добавлена в список результатов (потому что это самый дешевый вариант). )
Если minPurchaseQuantity равно 3, а payFor равно 1, это означает, что стоимость Art2 и Art1 должна быть добавлена в список результатов (теперь добавляется только Art2)>
Подробнее здесь: https://stackoverflow.com/questions/549 ... -algorithm
Мобильная версия