黑马程序员技术交流社区

标题: 一枚小小程序,分享下 [打印本页]

作者: 王春晓    时间: 2013-5-17 18:40
标题: 一枚小小程序,分享下
  1. package basetest;

  2. /*
  3. * 1:矿泉水1元钱1瓶,每2个空瓶换一瓶矿泉水,现有20元钱,请问可以买多少瓶矿泉水?       
  4. */
  5. /*                mon = 20;
  6.                 wat = 20;
  7.                 bot = 20;
  8.                 wat = 10;
  9.                 bot = 10;
  10.                 wat = 5;<
  11.                 bot = 5;
  12.                 wat = 2;//余1
  13.                 bot = 2;
  14.                 wat = 1;
  15.                 bot = 2;
  16.                 wat = 1;
  17.                 bot = 1;*/
  18. public class bottle {
  19.         public static void main(String[] args){
  20.                 System.out.println(water(20));
  21.         }
  22.         public static int water(int money){
  23.                 int bottle = 0,water = 0;
  24.                 water = money;
  25.                 bottle = water;
  26.                 //当只剩一个瓶子的时候,买不了水了,另想办法吧
  27.                 while(bottle>1){
  28.                         //瓶子是2的整数倍时,刚好能买瓶子一半的水
  29.                         while(!(bottle%2==1)&&bottle>1){
  30.                                 bottle = bottle/2;
  31.                                 water += bottle;
  32.                         }
  33.                         //瓶子不是2的整数倍时,买完水剩下一个瓶子,再加回来
  34.                         while(bottle%2==1&&bottle>1){
  35.                                 bottle = bottle/2;
  36.                                 water += bottle;
  37.                                 bottle += 1;
  38.                         }
  39.                 }
  40.                 water +=1;//最后再借个瓶子买瓶水,把瓶子还回去,完美了
  41.                 return water;
  42.         }
  43. }
复制代码
看到这个题,自己写了个小程序,分享下,看看方法有问题不?







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