某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住六个人,让你用一个公式来计算他们要住的房间数(假设全部是男生)。写出详细的解释!
(X+5)/6    为什么要加5呢?

解决方案 »

  1.   

    假设有7人就需要两间房
    7/6=1不符合
    (7+5)/6=2符合
    也可以用Math.ceil(Xd/6d)
      

  2.   

    这个可以这样理解,在java中整数除以整数结果仍然是整数,java自动舍弃了小数点后面的部分,所以7/6=1,而在现实中我们要的结果却不是这样,7个人的话我们要的是2,也就是说只要存在小数就应该当作1来处理,由于min{(x-6*N)>0}=1,翻译过来也就是说在存在小数的情况下x减去6的整数倍,剩下的差最小值也是1,所以我们给这个数加上5,就可以变相的实现我们的需求了。
    其实这个的正解应该是  房间数 = x % 6 == 0 ? x / 6 : x / 6 + 1
      

  3.   

    因为JAVA中整数除以整数得到的 是整数,所以就这样写,可以这样算,先把人数除以6,得到的整数是基本的房间,那么假如有余数的话,那么房间就得加一,不管是多一个,还是多五个,加上余数都要大于6小于12,所以得到的数就只能是一,再加上原来的数,就得到正确的房间数。如果刚好除尽的话就不用我说了
      

  4.   

    也可以这样理解吧
      i=x/6;
      j=x%6;
    if(j>=1){
      i++;
    }
      如果余数大于1就增加一间房间