`
niewj
  • 浏览: 6730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

百元百鸡问题

    博客分类:
  • Java
 
阅读更多

昨天看到有一个百元百鸡的问题,以前以为这类问题都是很头疼的问题,自己应该解决不了,我本来就是个笨蛋。

今天看来,我错了,不是我太笨,是太懒了。

最初版:

public class Util{
    /** 百元百鸡问题
    	@author niewj
    	@since	2012-3-21 上午10:43:47  
    	@return void
    */
    public static void calc(int money,int num){
        int cock=money/5;
        int hen=money/3;
        int chilk=money*3;
        for(int i=0;i<=cock;i++){
            for(int j=0;j<=hen;j++){
                for(int k=0;k<=chilk;k++){
                    if(i+j+k==num && i*5+j*3+k/3==money && k%3==0){
                        System.out.println("公鸡="+i+"\t母鸡="+j+"\t雏鸡="+k);
                    }
                }
            }
        }
    }
    public static void main(String[] args){
        /* 100元,100只鸡 公鸡5/只;母鸡3/只;雏鸡3/只*/
        long begin=System.currentTimeMillis();
        int money=100;
        int num=100;
        calc(money,num);
        System.out.println(System.currentTimeMillis()-begin);
    }
}

 结果:

公鸡=0	母鸡=25	雏鸡=75
公鸡=4	母鸡=18	雏鸡=78
公鸡=8	母鸡=11	雏鸡=81
公鸡=12	母鸡=4	雏鸡=84
耗时:0ms(有时15ms)

 但是如果换成千元千鸡,就很耗时间了。

耗时:266ms

 修改后:

        for(int i=0;i<=cock;i++){
            for(int j=0;j<=hen;j++){
                int k=num-i-j;
                if (i*5+j*3+k/3==money && k%3==0) {
                    System.out.println("公鸡="+i+"\t母鸡="+j+"\t雏鸡="+ k);
                }
            }
        }
 

还是千元千鸡:

耗时:16ms

数量上升到5000之后,2层循环只20ms之内,但是三层的结果:

耗时:30513ms

 上升到10000,就得等半天了。

1
1
分享到:
评论
1 楼 pankanghe 2012-03-22  
改下
for(int k=0;k<=chilk;k += 3){
    if(7i+4j==money){//todo}
}

1、 用三元方程式得出  7i+4j==money
2、money = num
3、k%3 == 0 用 k+=3 代替

相关推荐

    百元百鸡arm汇编代码

    “百元百鸡”问题源于中国古代的数学问题,通常用来考察逻辑思维和计算能力。问题的大致内容是:有100元钱,鸡每只3元,兔每只5元,问如何购买使得鸡兔总数正好是100只。在编程中,我们需要找到满足这个条件的所有...

    C语言百鸡问题

    C语言编写的百鸡问题,提供具体的源代码,可供下载

    百元买百鸡_vb6_VB6数学计算_百元买百鸡_

    VB6.0编程解“百元买百鸡”问题“鸡兔同笼”、“百元买百鸡”问题是经典的数学运算问题,在没有计算机之前都是通过把所以可能的情形依依列举出来,然后汇总出所有方案,这样计算过程相当繁琐,接下来介绍用VB6.0编程...

    delphi7 百元买百鸡问题

    在IT行业中,编程解决问题是一项基本技能,而"百元买百鸡问题"是一个经典的数学问题,也常被用作编程教学中的案例。这个问题源于中国古代,考验的是逻辑思维和算法设计能力。Delphi 7是一款经典的面向对象编程语言,...

    百元买百鸡问题 蛮力法——C语言代码

    "百元买百鸡问题"是一道经典的数学问题,源于中国古代算术,也被称为“鸡兔同笼”问题。在编程领域,这个问题常被用来教授基础的算法和逻辑思考。在此,我们关注的是如何用C语言来解决这个问题,特别是在描述中提到...

    VB 百元买百鸡

    【VB 百元买百鸡】是一个经典的编程问题,源于中国的数学趣题“百钱买百鸡”,在VB(Visual Basic)环境下进行编程解决。这个问题的背景是:假设鸡每只值5元,兔每只值3元,鹅每只值2元,用100元钱去购买100只鸡、兔...

    百元买百鸡_vb6_VB6数学计算_百元买百鸡_源码.zip

    《百元买百鸡》是经典的数学问题,源自中国古代算术,它涉及到整数规划和逻辑推理。在VB6(Visual Basic 6)环境中,我们可以用编程的方式来解决这个问题,这同样是一个很好的教学示例,帮助学习者理解编程思维和...

    c语言百元买百鸡问题.zip

    在C语言编程中,"百元买百鸡"是一个经典的数学问题,也称为"鸡兔同笼"问题的变体。这个问题源于中国古代的算术书《算经》,它旨在通过有限的条件推导出未知数的值。在这个问题中,我们需要用100元钱购买100只鸡,每...

    百元买百鸡c语言.c

    百元买百鸡c语言.c

    scratch3源码百元买百鸡

    scratch3源码百元买百鸡本资源系百度网盘分享地址

    【无标题】百元买百鸡问题-java经典(csdn)————程序.pdf

    "百元买百鸡"问题就是一个这样的例子,它源自中国古代的数学问题,旨在通过编程解决。在这个问题中,我们需要用100元钱购买100只鸡,鸡分为三种:公鸡、母鸡和小鸡,它们的价格分别为5元、3元和1元。目标是找出所有...

    C语言 百钱百鸡

    C语言 实现百钱百鸡的代码 实用案例

    c++ 百钱买鸡问题 百鸡问题

    百鸡问题是经典的数学问题,它涉及到了组合数学和线性方程组的解法。在C++编程中,我们可以利用循环结构和条件判断来解决这个问题。现在,让我们深入探讨一下如何使用C++来解决百鸡问题。 首先,我们需要定义三个...

    百钱百鸡实验

    C#控制台实现百钱百鸡实验,新手交流,互相参考!

    枚举法解决百元买百鸡学习教案.pptx

    枚举法解决百元买百鸡学习教案.pptx

    15-百元买百鸡-项目源码与素材,Scratch少儿编程,经典教学作品,儿童益智游戏

    "百元买百鸡"是一个基于Scratch的少儿编程项目,旨在通过游戏化学习的方式,让孩子们在解决实际问题的过程中了解编程的基本概念。 在这个项目中,"百元买百鸡"是一个经典的数学问题,通常被称为"鸡兔同笼"问题。...

    枚举法解决百元买百鸡PPT学习教案.pptx

    例如,在【百元买百鸡问题】中,我们需要购买价值为100的钱的鸡,鸡分为三种类型:公鸡(值5钱)、母鸡(值3钱)和小鸡(3只值1钱)。通过设立三个变量`x`、`y`、`z`分别表示公鸡、母鸡和小鸡的数量,我们可以构建一...

    易语言4.11精简版-part10

    最后一个压缩包 最新的精简版,总共有10部分,全部解压后有84M

    31-百元买百鸡.pptx

    在解决特定问题,如“百元买百鸡”这一经典数学问题时,Scratch成为了一个实用的工具。这道问题需要通过编程来寻找满足条件的鸡的种类组合。在Scratch中,可以通过设置变量、使用循环和条件判断等脚本来解决。例如,...

    枚举法解决百元买百鸡PPT课件.pptx

    以“百元买百鸡”问题为例,这是一个经典的枚举法应用。在这个问题中,鸡分为三种类型:鸡翁(公鸡)、鸡母(母鸡)和鸡雏(小鸡),它们的价格分别为5元、3元和1元。目标是用100元钱买100只鸡。我们设鸡翁、鸡母和...

Global site tag (gtag.js) - Google Analytics