日期:2014-05-20  浏览次数:20743 次

茶壶自动倒水
一个水壶   五个杯子,让水壶自动给杯子倒水,杯子里的水到80毫升自动给下一个杯子倒水。
    用java语言实现,我想看看大家有什么好的算法吗

------解决方案--------------------
是多线程吧!
如果不是多线程,那这个题就没意思了!
------解决方案--------------------
关注
------解决方案--------------------
我刚学JAVA,试着写了一下..

package com.nxroad.teacher;

public class WaterCup {
private int content;// 杯子容量
static int n=0;
int cupNum;

public WaterCup() {
super();
content = 0;
n++;
cupNum=n;
}

public boolean setContent(int x) {
this.content += x;
if (content == 80) {
x = 0;

return true;
}
return false;
}

public int getContent() {
return content;
}


public static void main(String[] args) {
WaterHu p = new WaterHu();
WaterCup[] p1 = new WaterCup[5];
for(int i=0;i <5;i++){
p1[i]=new WaterCup();

}
int n=0;
while (true) {
p.setN(10);
System.out.println( "水壶倒水,水量为 " + p.daoWater());
System.out.println( "第 " + p1[n].cupNum + "杯子在接水,水量为 "
+ p1[n].getContent());
if(p1[n].setContent(p.getN())){
p.setN(0);
System.out.println( "第 "+p1[n].cupNum+ "个杯子满了,水量为 "+p1[n].getContent());
n++;

System.out.println(n);
if(n==5){
System.out.println( "杯子已全部接满水了 ");
break;
}
}
}
}
}

class WaterHu {
private int content = 1000;

private int n = 10;

public WaterHu() {
super();
// TODO Auto-generated constructor stub
}

public int getN() {
return n;
}

public void setN(int n) {
this.n = n;
}

public int daoWater() {
content -= n;
return content;
}
}

输入结果如下:
水壶倒水,水量为990
第1杯子在接水,水量为0
水壶倒水,水量为980
第1杯子在接水,水量为10
水壶倒水,水量为970
第1杯子在接水,水量为20
水壶倒水,水量为960
第1杯子在接水,水量为30
水壶倒水,水量为950
第1杯子在接水,水量为40
水壶倒水,水量为940
第1杯子在接水,水量为50
水壶倒水,水量为930
第1杯子在接水,水量为60
水壶倒水,水量为920
第1杯子在接水,水量为70
第1个杯子满了,水量为80
1
水壶倒水,水量为910
第2杯子在接水,水量为0
水壶倒水,水量为900
第2杯子在接水,水量为10
水壶倒水,水量为890
第2杯子在接水,水量为20
水壶倒水,水量为880
第2杯子在接水,水量为30
水壶倒水,水量为870
第2杯子在接水,水量为40
水壶倒水,水量为860
第2杯子在接水,水量为50
水壶倒水,水量为850
第2杯子在接水,水量为60
水壶倒水,水量为840
第2杯子在接水,水量为70
第2个杯子满了,水量为80
2
水壶倒水,水量为830
第3杯子在接水,水量为0
水壶倒水,水量为820
第3杯子在接水,水量为10
水壶倒水,水量为810
第3杯子在接水,水量为20
水壶倒水,水量为800
第3杯子在接水,水量为30
水壶倒水,水量为790
第3杯子在接水,水量为40
水壶倒水,水量为780
第3杯子在接水,水量为50
水壶倒水,水量为770
第3杯子在接水,水量为60
水壶倒水,水量为760
第3杯子在接水,水量为70
第3个杯子满了,水量为80
3
水壶倒水,水量为750
第4杯子在接水,水量为0
水壶倒水,水量为740
第4杯子在接水,水量为10
水壶倒水,水量为730
第4杯子在接水,水量为20
水壶倒水,水量为720
第4杯子在接水,水量为30
水壶倒水,水量为710
第4杯子在接水,水量为40
水壶倒水,水量为700
第4杯子在接水,水量为50
水壶倒水,水量为690
第4杯子在接水,水量为60
水壶倒水,水量为680
第4杯子在接水,水量为70
第4个杯子满了,水量为80
4
水壶倒水,水量为670
第5杯子在接水,水量为0
水壶倒水,水量为660
第5杯子在接水,水量为10
水壶倒水,水量为650
第5杯子在接水,水量为20
水壶倒水,水量为640
第5杯子在接水,水量为30
水壶倒水,水量为630
第5杯子在接水,水量为40
水壶倒水,水量为620
第5杯子在接水,水量为50
水壶倒水,水量为610
第5杯子在接水,水量为60
水壶倒水,水量为600
第5杯子在接水,水量为70