码迷,mamicode.com
首页 > 其他好文 > 详细

穷举练习——7月24日

时间:2016-07-24 22:40:34      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况

练习一:购物

//单位给发了一张150元购物卡,拿着到超市买三种洗化用品,
            //洗发水15元(x)、香皂2元(z),牙刷5元(y),
            //求刚好花完150元有多少种买法,每种买法都是各买几样
            int sum = 0;
            for (int x = 0; x * 15 <= 150; x++)
            {
                for (int y = 0; y * 5 <= 150; y++)
                {
                    for (int z = 0; z * 2 <= 150; z++)
                    {
                        if (x * 15 + y * 5 + z * 2 == 150)
                        {
                            sum++;
                            Console.WriteLine("" + sum + "种买法是:洗发水" + x + "瓶,香皂" + z + "块,牙刷" + y + "只。");
                        }
                    }
                }
            }
            Console.WriteLine("总共有" + sum + "种买法!");
            Console.ReadLine();

技术分享

练习二:百鸡百钱

            //公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,
            //现在有100文钱,要求买100只鸡
            //问每种至少买一只,符合要求的有多少种买法,每种买法的每种鸡各能买多少只
            int sum = 0;
            for (int g = 1; g * 2 <= 100; g++)
            {
                for (int m = 1; m * 1 <= 100; m++)
                {
                    for (double x = 1; x * 0.5 <= 100; x++)
                    {
                        if (g * 2 + m * 1 + x * 0.5 == 100 && g + m + x == 100)
                        {
                            sum++;
                            Console.WriteLine("" + sum + "种买法是:公鸡" + g + "只,母鸡" + m + "只,小鸡" + x + "只!");
                        }
                    }
                }
            }
            Console.WriteLine("总共有" + sum + "种买法!");
            Console.ReadLine();

技术分享

练习三:马驮粮食

//大马驼2石粮食,中等马驼1石粮食,两头小马驼1石粮食,
            //要用100匹马,驼100石粮食,该如何分配?
            int sum = 0;//设置变量,计算有多少种分配方法
            int bian = 0;//计算总共循环了多少次
            for (int d = 0; d * 2 <= 100; d++)
            {
                for (int z = 0; z * 1 <= 100; z++)
                {
                    for (double x = 0; x * 0.5 <= 100; x++)
                    {
                        bian++;
                        if (d * 2 + z * 1 + x * 0.5 == 100 && d + z + x == 100)
                        {
                            sum++;//计算的是有多少种可能的方法
                            Console.WriteLine("" + sum + "种方法是:大马驼" + d + "石粮食,中马驼" + z + "石粮食,小马驼" + x + "石粮食。");
                        }
                    }
                }
            }
            Console.WriteLine("总共循环了:" + bian + "遍。");
            Console.WriteLine("共有" + sum + "种分配方法。");
            Console.ReadLine();

技术分享

练习四:组钱

//有1分钱,2分钱,5分钱的硬币,要组合出来1.5元钱,有几种组合方式,分别各多少个
            //1.5元=150分
            int sum = 0;
            for (int y = 0; y * 1 <= 150; y++)
            {
                for (int e = 0; e * 2 <= 150; e++)
                {
                    for (int w = 0; w * 5 <= 150; w++)
                    {
                        if (y * 1 + e * 2 + w * 5 == 150)
                        {
                            sum++;
                            Console.WriteLine("第{0}种组合方法是:1分钱{1}个,2分钱{2}个,5分钱{3}个。", sum, y, e, w);
                        }
                    }
                }
            }
            Console.WriteLine("总共有" + sum + "种组合方法!");
            Console.ReadLine();

技术分享

 

穷举练习——7月24日

标签:

原文地址:http://www.cnblogs.com/juyangchao12/p/5701715.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!