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