编一个C#程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一枚,并且所换硬币数不超过30枚。

如题所述

以下是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);

        }

    }

}

 

 

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-23
20种
相似回答