黑马程序员技术交流社区

标题: 求教~这个问题用二重循环怎么做 [打印本页]

作者: 张庚    时间: 2013-2-1 11:58
标题: 求教~这个问题用二重循环怎么做
本帖最后由 张庚 于 2013-2-1 13:44 编辑

5文钱买一只公鸡,3文钱买一只母鸡,一文钱买三只雏鸡。现在用100文钱买一百只鸡,那么公鸡、母鸡、雏鸡各有多少只?

请教大神!!!
作者: 林其荣    时间: 2013-2-1 13:05
本帖最后由 林其荣 于 2013-2-1 13:10 编辑

楼主要怎么买, 是利润最大化吗?(公鸡利润>母鸡利润>小鸡利润)
作者: 周发建    时间: 2013-2-1 13:23
这个问题如果在汇编语言里用栈来存储其他寄存器
作者: 周发建    时间: 2013-2-1 13:26
其实学习汇编也挺有意识意思的
作者: 周发建    时间: 2013-2-1 13:27
林其荣 发表于 2013-2-1 13:05
楼主要怎么买, 是利润最大化吗?(公鸡利润>母鸡利润>小鸡利润)

我认为是利润要最大化,
作者: 陈科宇    时间: 2013-2-1 13:36
public class ChickenTest {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
      /**
       * 先把这个题简化为数学方程。用gj代表一只公鸡,mj代表一只母鸡,
       * cj代表一只雏鸡,则有5*gj+3*mj+0.333*cj=100(文)
       * 这里为了避免float类型带来的不等的问题,可以把方程扩展为
       * 15*gj+9*mj+cj=300(文)
       * 另外我们知道,鸡的总数是100只,可知cj=100-gj-mj,上式可化为:
       * 14*gj+8*mj=200,现在这就成了一个二重循环可以解决的问题了,我们的
       * 编码可以开始了。
       *
       */
                for(int gj=0;gj<15;gj++)//15=200/14+1
                {
                        for(int mj=0;mj<26;mj++)//26=200/8+1
                        {
                                if((14*gj+8*mj)==200)
                                {
                                        System.out.println("公鸡="+gj+",母鸡="+mj+",雏鸡="+(100-gj-mj));
                                }
                        }
                }
        }

}
作者: 陈科宇    时间: 2013-2-1 13:37
运行结果:
公鸡=0,母鸡=25,雏鸡=75
公鸡=4,母鸡=18,雏鸡=78
公鸡=8,母鸡=11,雏鸡=81
公鸡=12,母鸡=4,雏鸡=84
作者: 陈科宇    时间: 2013-2-1 13:38
如果对我的答案有疑问,可以进一步交流。
作者: 罗正荣    时间: 2013-2-1 13:58
{:soso_e113:}这个题我小的时候村里的人就拿来考我们
作者: 刘凯    时间: 2013-2-1 22:25
6楼威武,这个题难点在数学分析上自个认为, 只要能分析出来 代码并不难




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2