- /*28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,
- * 那么要买多少瓶可乐,够28人喝?假如是50人,
- * 又需要买多少瓶可乐?(需写出分析思路)
- */
- public class Test {
- public static void main(String[] args) {
- int pNum = 4;
- System.out.println(getNum(pNum));
- }
-
- /*思路:买3送1,那么每增加4个人实际上只增加了3瓶可乐*/
- public static int getNum(int pNum) {
-
- /*
- x=购买数量中不被3整出的部分,也就是无法参加满三赠一的部分人,
- 值可能是0(被4整除,那么瓶数也一定是3的整数倍),1,2,3;
- 不管是几,这一部分人的可乐都属于实际购买可乐数量的一部分,所以最后公式中要加上.
- */
- int x = pNum % 4;
-
-
- /*
- y=要送的瓶数;3个人送1瓶就是4瓶,每4个人中有一个人是送的,所以用人数/4
- */
- int y = pNum / 4;
-
- /*
- 因为y是送的瓶数,那么每送一瓶其实就是买了3瓶,
- 所以用3*y是实际买的3的整数倍瓶数(不包含送的),再加上x,就等于实际购买数量.
- */
- return (3 * y + x);
- }
- }
复制代码 |