黑马程序员技术交流社区

标题: 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝? [打印本页]

作者: doglovely    时间: 2016-3-7 22:21
标题: 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?
思路:3个可乐瓶盖可以换一瓶可乐,相当于买两瓶可乐,借一瓶可乐,瞅成三瓶可乐再还回去一瓶,相当于两瓶可乐可够3 *个人和。x人就需要x*2/3瓶可乐。如果x/3有余则向上取整。

public static void main(String[] args) {
                coco(4);

        }
   
        public static double coco(int person){
               
                int num = person*2;
                double cola = num/3;
                double cocoMany=Math.ceil(cola);
                System.out.println(person+"人需要买"+cocoMany+"瓶可乐");
                return cocoMany;
               
        }
为什么这样写为什么不对,ceil不是向上取整的吗?4个人需要3瓶为什么打印出来的是两瓶
作者: BlackFlag    时间: 2016-3-8 00:20
因为4*2=8  ,8/3=2, 把int类型的2赋给double类型,会转换为2.0,2.0向上取整是2;你把  double cola = num/3改成double cola = num/3.0就行了
作者: doglovely    时间: 2016-3-8 14:21
试了下,对了!!
作者: 小笨笨SHP    时间: 2016-3-8 20:31

因为4*2=8  ,8/3=2, 把int类型的2赋给double类型,会转换为2.0,2.0向上取整是2;你把  double cola = num/3改成double cola = num/3.0就行了
作者: doglovely    时间: 2016-3-8 21:03
还有别的做法吗?感觉我写的太简单了?




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