黑马程序员技术交流社区

标题: 渔夫打鱼问题?代码已经写好,请大家指出不足之处!!! [打印本页]

作者: TW莞尔一笑    时间: 2014-12-31 10:51
标题: 渔夫打鱼问题?代码已经写好,请大家指出不足之处!!!
  1. /*
  2.         渔夫出海大鱼,收获若干
  3.        
  4.         1.渔夫卖掉一半的鱼,然后送给邻居海伦3条。
  5.         2.渔夫又卖掉剩下的鱼的3分之2,自己又吃了一条
  6.         3.海伦来看渔夫,问他那天打了多少鱼,渔夫数了数,家里还剩下4条,渔夫对海伦怎么说呢?
  7.        
  8. */
  9. class FishMan {

  10. public static void main(String[] args) {

  11.         sumFish();
  12. }

  13. public static void sumFish() {

  14.   int total = 8;//总共的鱼,至少有8条=邻居的海伦3条+又吃了一条 + 剩下4条
  15.   
  16.   int left = 0;//剩下的鱼
  17.   
  18.   do {
  19.    int soldleft = total / 2;//第一次卖掉一半后剩下的

  20.    int firstLeft = soldleft - 3;//送掉邻居海伦剩下的

  21.    if(firstLeft % 3 == 0){
  22.                
  23.                 left = firstLeft/3 - 1;// 三分之一里面-吃掉的一条
  24.    
  25.                 if(left == 4 ){
  26.      
  27.                         System.out.println("一共有: " + total + " 条鱼");
  28.    
  29.                 }
  30.    }
  31.    
  32.         total += 2;//刚开始能平均2份,因此鱼数必定是偶数,步长为2
  33.   } while (left != 4);

  34. }

  35. }
复制代码

作者: 王晓杰    时间: 2014-12-31 11:59
你是不是写错了!? 如果我把最后的剩下的鱼改成其他的数字例如8 160 那?!
作者: TW莞尔一笑    时间: 2014-12-31 12:36
王晓杰 发表于 2014-12-31 11:59
你是不是写错了!? 如果我把最后的剩下的鱼改成其他的数字例如8 160 那?! ...

家里还剩4条鱼,为什么要把它改成8和160?剩下的不是4条鱼就继续循环...
作者: zhaojiajun    时间: 2014-12-31 15:59
感觉思路没什么问题,运行结果也正确,暂时没有发现问题
作者: dream_style    时间: 2015-1-1 10:56
学习了:lol
作者: czwanglei    时间: 2015-1-2 09:31
版主过来看看,写的真好。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2