穷举

穷举:
例题:公鸡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();

posted @ 2015-04-16 01:05  SaYes  阅读(331)  评论(0编辑  收藏  举报