package com.itheima;
/**
* 28人买可乐喝,
* 3个可乐瓶盖可以换一瓶可乐,
* 那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
* @author Administrator
* 思路: (这里只考虑实现,不考虑算法的效率)
* 3个瓶盖换一瓶可乐,也就是当手中瓶盖数量为3时,
* 可以让 饮用人的数量加一,手中瓶盖数量变成1
* 实现:定义3个变量,第一个boottle 表示购买的瓶数 从0开始,
* 第二个 bottleCap 表示手机从0开始,当手中瓶盖数为3时,马上去换,换后bottleCap置为1,饮用人数加1
* 第三个变量 people表示喝到可乐的人数量
*/
public class Test10 {
public static void main(String[] args) {
System.out.println( "需要28个人喝时 得购买"+method(28) );
System.out.println( "需要50个人喝时 得购买"+method(50) );
}
/**
*
* @param people 需要让喝到可乐的人的数量
* @return
*/
public static int method(int people){
//初始化购买的瓶数
int boottle =0;
//初始话当前手中的瓶盖数
int bottleCap = 0;
//初始化喝到可乐的人数
int drinker =0;
for(int i=1;i<people;i++){
//购买的瓶数+1
boottle++;
//喝到的人数+1
drinker++;
//当前手中的瓶盖数
bottleCap++;
//如果手中瓶盖数为3,立即调换
if(bottleCap==3){
//调换之后,手中瓶盖数为1
bottleCap=1;
//饮用人数+1
drinker++;
}
// System.out.println("购买"+boottle+"杯时可以够"+drinker+"个人喝");
//如果喝到的人数等于需要的人数,退出循环
if(drinker==people)
break;
}
//输出需要购买的瓶数
return boottle;
}
}
|