百元百鸡
用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
分析:不定方程
可以得出如下的不定方程,
x+y+z=100,
5x+3y+z/3=100,
下面再看看x,y,z的取值范围。
由于只有100文钱,则5x<100 => 0<x<20, 同理 0<y<33,那么z=100-x-y,
# 时间复杂度是O(N2)
for x in range(1,100):
for y in range(1,100):
z = 100 -x-y
if (5*x+3*y+z/3==100) and z%3==0:
print(x,y,z)
时间复杂度降为O(N):
class Program
{
static void Main(string[] args)
{
int x, y, z;
for (int k = 1; k <= 3; k++)
{
x = 4 * k;
y = 25 - 7 * k;
z = 75 + 3 * k;
Console.WriteLine("公鸡:{0}只,母鸡:{1}只,小鸡:{2}只", x, y, z);
}
Console.Read();
}
}