意思是说: 
     去菜市场买鸡,大鸡3元一只,小鸡1元三只,求怎么才能用100元刚好买100只鸡,要求用任意程序实现!
求达人代码!

解决方案 »

  1.   

    因为100/3=33.3....,所以100元最多能33只鸡:            int bigChecken, littleChecken;
                for (bigChecken = 1; bigChecken < 34; bigChecken++)
                {
                    littleChecken = 100 - bigChecken;
                    if ((3 * bigChecken + littleChecken / 3  == 100) && (bigChecken + littleChecken) == 100)
                    {
                        MessageBox.Show("大鸡:" + bigChecken.ToString() + ",小鸡:" + littleChecken.ToString());
                        break;
                    }
                }            
      

  2.   

    int dj = 100 / 3;
                for ( ; dj >= 0; dj--)
                {
                    int t = (100 - dj * 3)*3;
                    if ((t + dj) == 100)
                    {
                        MessageBox.Show("大鸡=" + dj.ToString() + "  小鸡=" + t.ToString());
                    }
                }
      

  3.   

    大鸡 最后买 X只,小鸡最后买Y只
    得出推断逻辑:
    3X+Y=100;
    X+Y=100;
    X取值大于等于0,小于等于33;
    Y取值大于等于1,小于等于100;
    ==========>
    //int x=0;//大鸡个数
    //int y=0;//小鸡个数
    for(int x=0;x<=33;x++)
    {
      for(int y=1;y<=100;y++)
      {
         if((3*x+y)==100 && ((x+y)==100))
        {
          Console.WriteLine("大鸡购买个数:{0},小鸡购买个数:{1} 的组合类型可符合要求",x,y);
        }
      }
    }
      

  4.   

    大鸡 最后买 X只,小鸡最后买Y只
    得出推断逻辑:
    3X+Y/3=100;
    X+Y=100;3X+Y/3 = X+Y2X = 2Y/3
    Y=3X
    X+Y=100=>X+3X=100 
    X=25
      

  5.   

     //百钱买百鸡。
        public class Chickens
        {
            public void Chicken()
            {
                for (int i = 0; i <= 100; i++)
                {
                    for (int j = 0; j <= 100; j++)
                    {
                        for (int k = 0; k <= 100; k++)
                        {
                            if ((5 * i + 3 * j + k == 100) && (i + j + k * 3 == 100))
                            {
                                Console.WriteLine("公鸡数量:{0}母鸡数量:{1}小鸡数量:{2}", i, j, 3 * k);
                            }
                        }
                    }
                }
            }我已经测试了。
      

  6.   

    这个y取值 太大了y取值和x有关系。并且两次循环 不好
      

  7.   

     int y=100/3;
                for(int i=1;i<y;i++)
                {
                    int a = 100 - 3 * i;
                    if (a * 3 + i == 100)
                    {
                        Console.WriteLine("大:"+i+"金额"+i*3+" 小:"+3*a+"金额"+a);
                        Console.ReadLine();
                    }
                }
      

  8.   

    x+y = 100
    3x+y/3=100
    so--> 3*(100-y) + y/3 = 100
    y取值1-100间
    所以可以这么设计程序
            int TotalNum = 100;//总共购买数量
            float TotalMoney = 100;//总共购买价格
            int BigMoney = 3;//大鸡价格
            double LittleMoney = 1.0/3.0;//小鸡价格
           int x = 0;//大鸡购买数量
            int y = 0;//小鸡购买数量
    double TempTotal = 0;
                for(int i = 70; i <= TotalNum; i++)
                {
                    TempTotal = BigMoney * (TotalNum - i) + i * LittleMoney;
                    if(TempTotal == TotalMoney)
                    {
                        y = i;
                        x = TotalNum - y;
                        break;
                    }
                }
            这个设计有个好处就是,可以求解任何数量和金额的设置,这是人脑和电脑的结合..完美..
    嗯,确实完美..
      

  9.   

    纠正下哈,前面是为了测试,跟踪,设置值有问题,正确应该是:
                for(int i = 0; i <= TotalNum; i++)
                {
                    TempTotal = BigMoney * (TotalNum - i) + i * LittleMoney;
                    if(TempTotal == TotalMoney)
                    {
                        y = i;
                        x = TotalNum - y;
                        break;
                    }
                }