C#根據總價、購買總件數以及單價獲取購買商品的方案
阿新 • • 發佈:2021-01-11
技術標籤:無聊之作
/// <summary>
/// 獲取方案
/// </summary>
/// <param name="nTotalFund">總資金</param>
/// <param name="nNum">購買商品的總數</param>
/// <param name="nUnitPrice">各類商品單價(預設為三種商品)</param>
public void GetSolution(int nTotalFund, int nNum, List<int > nUnitPrice)
{
var soluLists = new List<int[]>();
for (var i = 0; i < nNum; i++)
{
for (var j = 0; j < nNum; j++)
{
for (var k = 0; k < nNum; k++)
{
var nTotalValue = nUnitPrice[0] * i + nUnitPrice[1] * j + nUnitPrice[ 2] * k;
if (nTotalValue == nTotalFund && i + j + k == nNum)
soluLists.Add(new[] { i, j, k });
}
}
}
var mInfo = new StringBuilder();
mInfo.AppendLine("購買方案:");
foreach (var t in soluLists)
{
mInfo.AppendLine (nUnitPrice[0] + "元商品購買總數:" + t[0].ToString("D2"));
mInfo.AppendLine(nUnitPrice[1] + "元商品購買總數:" + t[1].ToString("D2"));
mInfo.AppendLine(nUnitPrice[2] + "元商品購買總數:" + t[2].ToString("D2"));
var value = nUnitPrice[0] * t[0];
value += nUnitPrice[1] * t[1];
value += nUnitPrice[2] * t[2];
mInfo.AppendLine("合計" + value.ToString("N") + "元整\n");
}
Debug.WriteLine(mInfo.ToString());
}
輸出結果: