以下是c#代码,控制台应用程序。兑换方案有20种(最后附程序运行结果):
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int yiFen = 1;//1分硬币的数量
int erFen = 1;//2分硬币的数量
int wuFen = 1;//5分硬币的数量
int money = 1 * 100;//1元即100分
int count = 0;//记录兑换方案数量
//内嵌三次循环,分析每种兑换情况(即计算每种硬币的数量的组合),每种硬币最少有一枚
for (yiFen = 1; yiFen <= money / 1; yiFen++)
for (erFen = 1; erFen <= money / 2; erFen++)
for (wuFen = 1; wuFen <= money / 5; wuFen++)
//如果四种硬币总数量等于100分,并且硬币数不超过30枚
if (yiFen * 1 + erFen * 2 + wuFen * 5 == 100 && yiFen + erFen + wuFen <= 30)
{
//累增兑换方案次数,输出每种兑换结果
count++;
Console.WriteLine("1元可以兑换成{0}个1分硬币和{1}个2分硬币和{2}个5分硬币,硬币数量为{3}个", yiFen, erFen, wuFen, yiFen + erFen + wuFen);
}
Console.WriteLine("兑换方案共有{0}种", count);
}
}
}