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

解决方案 »

  1.   

    我刚学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
    第5个杯子满了,水量为80
    5
    杯子已全部接满水了