A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 罗志辉 于 2015-10-15 15:04 编辑
DD_vincent 发表于 2015-9-25 23:47
其实你这个问题挺没劲的。因为这本来就是考察你如何用代码来实现的问题。
而不论是那种情况,都可以用代 ...

你说的是真理 {:2_35:},多谢提醒
  1. class Cola
  2. {
  3.         //练习单例设计模式,不用管
  4.         private Cola(){}
  5.         //非静态成员变量,表示想要喝到的可乐数
  6.         private int colanum;
  7.         //非静态成员变量,表示该商店的老板是否愿意借可乐
  8.         private boolean boss;
  9.         //静态成员变量,需要购买的可乐数
  10.         private static int buynum=0;
  11.         //静态成员变量,表示瓶盖数
  12.         private static int capnum=0;
  13.         //静态成员变量,表示购买的可乐数相对应能喝到的可乐数
  14.         private static int truenum=0;
  15.         //练习单例设计模式,不用管
  16.         private static Cola cola=new Cola();
  17.         //练习单例设计模式,不用管
  18.         public static Cola getInstance()
  19.         {
  20.                 return cola;
  21.         }
  22.         //获取想要喝的可乐数
  23.         public int getColanum()
  24.         {
  25.                 return colanum;
  26.         }
  27.         //设置想要喝的可乐数
  28.         public void setColanum(int colanum)
  29.         {
  30.                 this.colanum=colanum;
  31.         }
  32.         //设置老板人品,true表示老板人品好,愿意借可乐,false表示老板小气,不愿意借可乐
  33.         public void setBoss(boolean boss)
  34.         {
  35.                 this.boss=boss;
  36.         }
  37.         public String getBuynum()
  38.         {
  39.                 //1瓶一瓶地买,直到达到想要喝的数量为止
  40.                 while(truenum<colanum)
  41.                 {       
  42.                         //买可乐
  43.                         buynum++;
  44.                         //每买一瓶,能喝的可乐就多一瓶
  45.                         truenum++;
  46.                         //买一瓶就多一个盖
  47.                         capnum++;
  48.                         //老板不肯借可乐,事实上,如果老板答应可以退可乐的话,答案与能借是一样的,喝3瓶得买3瓶,换1瓶,总共4瓶,退货1瓶,结果就相当于买2瓶可以喝3瓶
  49.                         if(boss==false)
  50.                         {
  51.                                 //判断盖子数是否达到可以换到1瓶,并且如果之前买了后还没达到要喝的数目,就换可乐
  52.                                 if(capnum%3==0 && truenum<colanum)
  53.                                 {
  54.                                         //换可乐
  55.                                         truenum++;
  56.                                         //盖子换可乐了就没了,但是换过来的一瓶可乐也有1个盖,因此又有一个盖子了
  57.                                         capnum=1;
  58.                                 }
  59.                         }
  60.                         //老板肯借可乐
  61.                         else
  62.                         {
  63.                                 //判断盖子数是否达到借一瓶可乐就能再换一瓶,并且如果之前买了后还没达到要喝的数目,就借可乐
  64.                                 if(capnum%2==0 && truenum<colanum)
  65.                                 {
  66.                                         //借了老板1瓶可乐,因此多了一瓶可乐
  67.                                         truenum++;
  68.                                         //多的1瓶又产生了1个盖
  69.                                         capnum++;
  70.                                         //3个盖子又换来一瓶可乐
  71.                                         truenum++;
  72.                                         //换了可乐盖子就没了
  73.                                         capnum=0;
  74.                                         //还给老板一瓶可乐
  75.                                         truenum--;
  76.                                 }
  77.                         }
  78.                 }
  79.                 if(colanum>=0)
  80.                         return "想要喝到"+colanum+"瓶,"+"需要购买"+buynum+"瓶,"+"剩余"+capnum+"个瓶盖";
  81.                 else
  82.                         return "请检查您想要喝的可乐数,不能为负数!";
  83.         }


  84. }
  85. class ColaDemo
  86. {
  87.         public static void main(String[] args)
  88.         {
  89.                 Cola cola=Cola.getInstance();
  90.                 cola.setColanum(28);
  91.                 cola.setBoss(false);
  92.                 String a=cola.getBuynum();
  93.                 System.out.println(a);

  94.         }
  95. }
复制代码



回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马