题目:买一个公鸡需要 5 元,一个母鸡需要 3 元,三只小鸡 1 元。现用 100 元买 100 只鸡,要求三种鸡都要有。编程实现,输出所买的每种鸡的数量。
设所买的三种鸡的数量,公鸡B:X只,母鸡M:Y只,小鸡:Z只。由题目,三个变量之间满足下面关系:
(1) X + Y + Z = 100
(2) 5X + 3Y + Z/3 = 100
(2)式可化简为:15X + 9Y + Z = 300 ----------(3)
通过(1)、(3)式变形,得:
X + Y = 100 - Z ----------------(4)
15X + 9Y = 300 - Z ----------------(5)
可得 Z 的数学范围:0 <= Z <= 100,根据题目的约束条件(三种鸡都要有),可进一步得到 Z 的取值范围:1<= Z < 100
代码实现如下:
using System;
using System.Linq;
using System.Text.RegularExpressions;
class B
{
public static void Main()
{
//X、Y、Z分别表示所买的公鸡、母鸡、小鸡的数量
int X = 0, Y = 0, Z = 0;
int total = 0;
for (Z = 1; Z < 100; ++Z)
{
for (Y = 1; Y < 100; ++Y)
{
X = 100 - Z - Y;
if (X <= 0)
break;
total = 15 * X + 9 * Y + Z;
if (total == 300)
{
Console.WriteLine("找到一个解决方案:");
Console.WriteLine("公鸡数量:{0}", X);
Console.WriteLine("母鸡数量:{0}", Y);
Console.WriteLine("小鸡数量:{0}", Z);
Console.WriteLine();
Console.WriteLine();
break;
}
}
}
}
}
using System.Linq;
using System.Text.RegularExpressions;
class B
{
public static void Main()
{
//X、Y、Z分别表示所买的公鸡、母鸡、小鸡的数量
int X = 0, Y = 0, Z = 0;
int total = 0;
for (Z = 1; Z < 100; ++Z)
{
for (Y = 1; Y < 100; ++Y)
{
X = 100 - Z - Y;
if (X <= 0)
break;
total = 15 * X + 9 * Y + Z;
if (total == 300)
{
Console.WriteLine("找到一个解决方案:");
Console.WriteLine("公鸡数量:{0}", X);
Console.WriteLine("母鸡数量:{0}", Y);
Console.WriteLine("小鸡数量:{0}", Z);
Console.WriteLine();
Console.WriteLine();
break;
}
}
}
}
}
运行程序,得到下面输出:
找到一个解决方案:
公鸡数量:4
母鸡数量:18
小鸡数量:78
找到一个解决方案:
公鸡数量:8
母鸡数量:11
小鸡数量:81
找到一个解决方案:
公鸡数量:12
母鸡数量:4
小鸡数量:84
公鸡数量:4
母鸡数量:18
小鸡数量:78
找到一个解决方案:
公鸡数量:8
母鸡数量:11
小鸡数量:81
找到一个解决方案:
公鸡数量:12
母鸡数量:4
小鸡数量:84
浙公网安备 33010602011771号