// 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?
public class Cola {
public static void main(String[] args) {
System.out.println("够28人喝,要买" + getColaNUM(28) + "瓶可乐");
System.out.println("够50人喝,要买" + getColaNUM(50) + "瓶可乐");
}
// 此方法根据目前的瓶子数,得出可乐可供多少人喝
static int colaNum(int bottleNum) {
int sum = bottleNum;// 总共瓶子数
int shang;// 可兑换瓶子数
int yu;// 剩余瓶子数
int now = bottleNum;// 目前瓶子数
// 当瓶子数的时候,直接买人数对应的可乐数,否则执行下面循环
while (now >= 3) {
shang = now / 3;// 可兑换数
yu = now - 3 * shang;// 剩余数
sum += shang;// 总数
now = shang + yu;// 现在数
}
return sum;
}
// 此方法根据人数,得出需要买的可乐瓶数
static int getColaNUM(int n) {
int num = 0;
// 遍历,得出需购可乐瓶数
while (colaNum(num) < n) {
num++;
}
return num;
}
} // 代码是在论坛里看到的,本身没有学习到这个阶段,随手复制一份,给你个思路。