黑马程序员技术交流社区

标题: 练练手,关于买可乐的题。 [打印本页]

作者: 79481535    时间: 2015-10-11 09:16
标题: 练练手,关于买可乐的题。
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?

  1. public static void main(String[] args){
  2.         CountKele(28);
  3.         }

  4.     public static void CountKele(int number){//此处传入人数

  5.         int kele = 0;//定义一个变量,来统计瓶盖的数量。
  6.         int count = 0;//定义一个变量,来统计买的可乐的数量。
  7.         for(int i=1; i<number; i++){
  8.             if(kele == 3){
  9.                 kele = 1;
  10.             }
  11.             else{
  12.                 kele ++;
  13.                 count ++;
  14.             }

  15.         }
  16.         System.out.print(number+"人喝可乐,需要购买"+count+"瓶可乐。");
  17.     }
复制代码

作者: 大木木    时间: 2015-10-11 11:50
清晰思路点个赞
作者: DarkHorseFly    时间: 2015-10-11 13:13
大神求带
作者: 太阳太阳    时间: 2015-10-11 13:23
很清晰。。。。。。
作者: IT黑马_梧桐    时间: 2015-10-11 14:30
思路清晰
作者: 斑点狗    时间: 2015-10-11 16:52
不错。代码很简洁啊!
作者: yuyucoo    时间: 2015-10-11 17:35
本帖最后由 yuyucoo 于 2015-10-11 17:42 编辑

你是正确的
作者: 莫盛强    时间: 2015-10-11 18:32
看了半天才看懂
作者: fwqk123    时间: 2015-10-11 18:36
逻辑清楚
作者: Jared    时间: 2015-10-11 18:42
水不到经验了吗
作者: chenwt2015    时间: 2015-10-11 21:01
我都看不懂!
作者: panpanpan138    时间: 2015-10-11 21:06
受教受教
作者: 0925李超月    时间: 2015-10-11 21:17
思路分析并没有
作者: yuzexing    时间: 2015-10-11 22:35
666666666666
作者: dzzheng3    时间: 2015-10-11 23:00
这个有点意思
作者: it213399    时间: 2015-10-11 23:44
顶,!!!!!
作者: 如梦丶似幻    时间: 2015-10-12 00:54
66666666666666
作者: 黑夜中那颗星    时间: 2015-10-12 16:12
public class Test{
        public static void main(String[] args) {
                demo(28);
        }
        public static void demo(int num){
                int present = 0;        //赠送的
                int buf = 0;        //购买的
                while((buf+present)<num){        //赠送的和购买的够数了就不循环
                        buf++;        //每次购买1瓶
                        if(buf%3==0){        //如果买了3瓶就赠送一瓶
                                present++;
                        }
                }
                System.out.println("购买:"+buf+"   赠送:"+present);
        }
}


作者: heshiwei    时间: 2015-10-12 17:28
这个问题其实很简单,推导一个公式就搞定,不需要模拟,你的代码复杂了。

  1. public static void main(String[] args) {
  2.         int n = 28;
  3.         System.out.println((n%3==0)?(n-n/3+1) : (n-n/3));
  4. }
复制代码





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