MFlower——朝花夕拾

                                   有你有我
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

100 鸡问题

Posted on 2008-11-26 13:18  MFlower  阅读(182)  评论(0)    收藏  举报

题目:买一个公鸡需要 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;
                }
            }
        } 
    }
}

 

 运行程序,得到下面输出:

找到一个解决方案:
公鸡数量:4
母鸡数量:18
小鸡数量:78


找到一个解决方案:
公鸡数量:8
母鸡数量:11
小鸡数量:81


找到一个解决方案:
公鸡数量:12
母鸡数量:4
小鸡数量:84