昨天看到有一个百元百鸡的问题,以前以为这类问题都是很头疼的问题,自己应该解决不了,我本来就是个笨蛋。
今天看来,我错了,不是我太笨,是太懒了。
最初版:
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,就得等半天了。
分享到:
相关推荐
“百元百鸡”问题源于中国古代的数学问题,通常用来考察逻辑思维和计算能力。问题的大致内容是:有100元钱,鸡每只3元,兔每只5元,问如何购买使得鸡兔总数正好是100只。在编程中,我们需要找到满足这个条件的所有...
C语言编写的百鸡问题,提供具体的源代码,可供下载
VB6.0编程解“百元买百鸡”问题“鸡兔同笼”、“百元买百鸡”问题是经典的数学运算问题,在没有计算机之前都是通过把所以可能的情形依依列举出来,然后汇总出所有方案,这样计算过程相当繁琐,接下来介绍用VB6.0编程...
在IT行业中,编程解决问题是一项基本技能,而"百元买百鸡问题"是一个经典的数学问题,也常被用作编程教学中的案例。这个问题源于中国古代,考验的是逻辑思维和算法设计能力。Delphi 7是一款经典的面向对象编程语言,...
"百元买百鸡问题"是一道经典的数学问题,源于中国古代算术,也被称为“鸡兔同笼”问题。在编程领域,这个问题常被用来教授基础的算法和逻辑思考。在此,我们关注的是如何用C语言来解决这个问题,特别是在描述中提到...
【VB 百元买百鸡】是一个经典的编程问题,源于中国的数学趣题“百钱买百鸡”,在VB(Visual Basic)环境下进行编程解决。这个问题的背景是:假设鸡每只值5元,兔每只值3元,鹅每只值2元,用100元钱去购买100只鸡、兔...
《百元买百鸡》是经典的数学问题,源自中国古代算术,它涉及到整数规划和逻辑推理。在VB6(Visual Basic 6)环境中,我们可以用编程的方式来解决这个问题,这同样是一个很好的教学示例,帮助学习者理解编程思维和...
在C语言编程中,"百元买百鸡"是一个经典的数学问题,也称为"鸡兔同笼"问题的变体。这个问题源于中国古代的算术书《算经》,它旨在通过有限的条件推导出未知数的值。在这个问题中,我们需要用100元钱购买100只鸡,每...
百元买百鸡c语言.c
scratch3源码百元买百鸡本资源系百度网盘分享地址
"百元买百鸡"问题就是一个这样的例子,它源自中国古代的数学问题,旨在通过编程解决。在这个问题中,我们需要用100元钱购买100只鸡,鸡分为三种:公鸡、母鸡和小鸡,它们的价格分别为5元、3元和1元。目标是找出所有...
C语言 实现百钱百鸡的代码 实用案例
百鸡问题是经典的数学问题,它涉及到了组合数学和线性方程组的解法。在C++编程中,我们可以利用循环结构和条件判断来解决这个问题。现在,让我们深入探讨一下如何使用C++来解决百鸡问题。 首先,我们需要定义三个...
C#控制台实现百钱百鸡实验,新手交流,互相参考!
枚举法解决百元买百鸡学习教案.pptx
"百元买百鸡"是一个基于Scratch的少儿编程项目,旨在通过游戏化学习的方式,让孩子们在解决实际问题的过程中了解编程的基本概念。 在这个项目中,"百元买百鸡"是一个经典的数学问题,通常被称为"鸡兔同笼"问题。...
例如,在【百元买百鸡问题】中,我们需要购买价值为100的钱的鸡,鸡分为三种类型:公鸡(值5钱)、母鸡(值3钱)和小鸡(3只值1钱)。通过设立三个变量`x`、`y`、`z`分别表示公鸡、母鸡和小鸡的数量,我们可以构建一...
最后一个压缩包 最新的精简版,总共有10部分,全部解压后有84M
在解决特定问题,如“百元买百鸡”这一经典数学问题时,Scratch成为了一个实用的工具。这道问题需要通过编程来寻找满足条件的鸡的种类组合。在Scratch中,可以通过设置变量、使用循环和条件判断等脚本来解决。例如,...
以“百元买百鸡”问题为例,这是一个经典的枚举法应用。在这个问题中,鸡分为三种类型:鸡翁(公鸡)、鸡母(母鸡)和鸡雏(小鸡),它们的价格分别为5元、3元和1元。目标是用100元钱买100只鸡。我们设鸡翁、鸡母和...