/// <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());
}
输出结果: