• 穷举练习——7月24日


    穷举:把所有可能的情况都走一遍,使用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();

  • 相关阅读:
    UIButton添加倒计时
    AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端
    js脚本都可以放在哪些地方
    js实现整数转化为小数
    JavaBean自动生成get和set方法
    servlet与Javabean之间的区别
    搞不懂SSH与JAVA+Servlet+javabean有什么关系
    启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”的解决方法!
    win8安装sql2008及设置登陆名问题
    jdbc的配置及jdbc连接常用数据库(mysql、sqlserver、Oracle)
  • 原文地址:https://www.cnblogs.com/juyangchao12/p/5701715.html
Copyright © 2020-2023  润新知