这是个很经典的问题,今天听同学说了这个问题,忍不住就研究了一下,下面的代码中的person作为参数的话就可以做成方法了,由于 是就事论事的分析,所以就没做方法大神莫怪哦,好了下面开始阅读吧。另外弱弱的说一句,结果出来的时候我发现; 一个问题,销售行业都是坑啊!其实没便宜多少啊!
- public class Coke {
- /**
- * 28个人 买可乐 三个瓶盖换一个可乐 请问需要买多少瓶
- * 分析:
- * 1先买一瓶 ,
- * 2不够喝,所以多买一瓶试试
- * 3用瓶盖去还,直到不能换为止,
- * 4然后判断买的可可乐够不够,够了就不再买了否则重复2过程
- * 根据分析明显是个未知次数的循环,所以选择用while循环
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int person = 28;//喝可乐的人数
- int n = 1;//初始买一瓶可乐
- while (true) {
- n++;//买一瓶可乐
- int count = 0;
- int m = n;//m为瓶盖数
- while(m>=3){
-
- int coun =m/3;//用瓶盖去换可可乐
- m = coun +m%3; //之前剩余的有瓶盖的可乐加上新换来的有瓶盖的可乐
- count = coun+count;//统 计换的可乐数
- }
- //判断是否需要再买够人喝了就不用再买了
- if (n+count>=person) {
- break;
- }
-
- }
- System.out.println("可乐公司举办活动:三个瓶盖换一个可乐的活动");
- System.out.println(person+"个人,一人喝一瓶,需要买"+n+"瓶可乐");
- }
- }
复制代码 |