题目描述
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3 个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许 暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么, 对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入描述
输入一个整数n,表示开始购买的饮料数量(0<n<1000)
例如:
用户输入1:100
用户输入2:101
输出描述
输出一个整数,表示实际得到的饮料数
例如:
对应用户输入1, 程序应该输出:149
对应用户输入2, 程序应该输出:151
总体思路:
每三个瓶盖可以换一瓶饮料,
可以使用当前瓶盖总数整除3来计算当前瓶盖可兑换饮料的数量。
饮料喝掉之后又会转化为等量的瓶盖,
所以可以使用当前瓶盖整除3+当前瓶盖模三来记录下一轮瓶盖的数量
整体循环使用while循环,当瓶盖总数不足三时循环结束,
所记录的饮料总量为最多可喝掉的饮料数
参考代码
public static void main(String[] args) {
int n,sum,pg; //n为开始购买的饮料数,sum为喝掉的饮料数,pg为瓶盖数
Scanner in = new Scanner(System.in);
while(in.hasNextInt()){
n=in.nextInt();
sum=n;//第一轮喝掉的饮料为所有购入的饮料
pg=n; //第一轮瓶盖的数量为所有购入饮料的数量
while (pg>=3){//当瓶盖大于等于三时(可以换饮料时)进入循环,小于三时(不能换饮料时)退出循环
sum+=pg/3; //喝掉的饮料总和为之前喝掉的饮料的数量加上这一轮用瓶盖换来的饮料的数量
pg=pg/3+pg%3;//瓶盖剩余为这一轮用瓶盖换得的饮料数量加上这一轮剩余瓶盖数量
}
System.out.println(sum);
}
}