- public class Test011
- {
- /**
- *28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,
- *那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
- *
- *思路:1、定义三个变量,num、count、sum。
- * count用来记录瓶盖数
- * sum用来记录总共得到多少瓶可乐
- * num来记录买了多少瓶可乐,如果num<4,则需要买num瓶,
- * 2、如果num>4,先买3瓶可乐,得到3个瓶盖,
- * 可兑换1瓶可乐(判断sum == 人数),这时有1个瓶盖
- * 3、再买1瓶(判断sum == 人数),可得到1个瓶盖,这时2个瓶盖
- * 4、再买1瓶(判断sum == 人数),可得到1个瓶盖,这时3个瓶盖可兑换1瓶可乐(判断sum == 人数),兑换后这时1个瓶盖
- * 5、再买1瓶(判断sum == 人数),可得到1个瓶盖,这时2个瓶盖
- * 6、再买1瓶(判断sum == 人数),可得到1个瓶盖,这时3个瓶盖可兑换1瓶可乐(判断sum == 人数),兑换后这时1个瓶盖
- * .....
- * @param args
- */
- public static void main(String[] args)
- {
- int personNum = 50;
- int num = getNum(personNum);
- System.out.println(num);
- num = getNumMethod(personNum);
- System.out.println(num);
- }
- //获取需购买的瓶数
- public static int getNum(int PersonNum)
- {
- //如果人数少于4个人,则需要购买的瓶数就等于人数
- if(PersonNum < 4)
- return PersonNum;
-
- //如果人数大于4,则先购买3瓶,定义三变量num、count、sun分别记录购买的可乐瓶数、瓶盖数、总共的可乐瓶数
- int num = 3, count = 3, sum = 3;
- for(int i = 0; sum != PersonNum; i++)
- {
- //瓶盖够3个就兑换一次
- if(count ==3)
- {
- sum++;
- count = 1;
- continue;
- }
- num ++;
- count ++;
- sum ++;
- }
- return num;
- }
- //也可以将for循环换成while循环
- public static int getNumMethod(int PersonNum)
- {
- //如果人数少于4个人,则需要购买的瓶数就等于人数
- if(PersonNum < 4)
- return PersonNum;
-
- //如果人数大于4,则先购买3瓶,定义三变量num、count、sun分别记录购买的可乐瓶数、瓶盖数、总共的可乐瓶数
- int num = 3, count = 3, sum = 3;
- while(sum != PersonNum)
- {
- if(count ==3)
- {
- sum++;
- count = 1;
- continue;
- }
- num ++;
- count ++;
- sum ++;
- }
- return num;
- }
- }
复制代码 |