1. 程式人生 > 其它 >C#根據總價、購買總件數以及單價獲取購買商品的方案

C#根據總價、購買總件數以及單價獲取購買商品的方案

技術標籤:無聊之作

/// <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()); }

輸出結果:
在這裡插入圖片描述