zoukankan      html  css  js  c++  java
  • 穷举

    穷举:
    例题:公鸡2钱,母鸡1钱,小鸡0.5钱,每种至少一只,100钱买100鸡有几种可能。
    思考:出这个题的人让我蛋疼。
    分析一下,先定义g=公鸡,m=母鸡,x=小鸡;每种鸡至少有一只则 g+m+x==100,
    根据价钱得到 2g+1g+0.5g==100,那么我们有了择选标准
    (g+m+x==100&&2g+1g+0.5g==100)
    穷举就是把一种种可能性全列出来。
    那么我们就把100块钱能买到的鸡的所有可能性都列出来
    for (int g = 1; g * 2 <= 100; g++)   //能买公鸡个数
    for (int m = 1; m * 1 <= 100; m++)   //能买母鸡个数
    for (int x = 1; x * 0.5 <= 100; x++) //能买小鸡个数
    那我们将这些可能嵌套起来
       for (int g = 1; g * 2 <= 100; g++)
                {
                 for (int m = 1; m * 1 <= 100; m++)
                    {
                        for (int x = 1; x * 0.5 <= 100; x++)
                        {
                        }
                    }         
                }
    这样将是一个很大的图列出了所有可能性,所以我们要加上我们的筛选条件,筛选出来我们想要的。
    如果想要一个计数器计算有多少种可能性就要设立一个整数 int n,初始化n=0;
    把这个n加在if条件里面,如果满足条件进入if里面则n就自加一次 n++ ,输出n。
     int n = 0;
                for (int g = 1; g * 2 <= 100; g++)
                {
                    for (int m = 1; m * 1 <= 100; m++)
                    {
                        for (int x = 1; x * 0.5 <= 100; x++)
                        {
                            if (g * 2 + m * 1 + x * 0.5 == 100 && g + m + x == 100)
                            { Console.WriteLine("公鸡" + g + "母鸡" + m + "小鸡" + x + "一共"+(g + m + x));
                            n++;
                            }
                        }        
                    }
                }
                Console.Write("共有" + n + "种可能");
                Console.ReadLine();

  • 相关阅读:
    Serverless:这真的是未来吗?(二)
    阿里云 EDAS 3.0 助力唱鸭提升微服务幸福感
    520,一份给程序员的“硬核”脱单秘籍
    稳定性之故障应急处理流程
    殷浩详解DDD:领域层设计规范
    Vineyard 加入 CNCF Sandbox,将继续瞄准云原生大数据分析领域
    【开通指南】 实时计算 Flink 全托管版本
    【HTML】html5 canvas全屏烟花动画特效
    【HTML】中国天气天气插件调用
    【Python】求n!
  • 原文地址:https://www.cnblogs.com/18553325o9o/p/4430801.html
Copyright © 2011-2022 走看看