题目描述
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
输入描述
输入一个整数 n(0<n<1000)n(0<n<1000),表示开始购买的饮料数量。
输出描述
输出一个整数,表示实际得到的饮料数
输入输出样例
示例
输入
100
输出
149
运行限制
最大运行时间:1s
最大运行内存: 256M
思路:
运用递归;
也可以用while循环,道理一样;
while:https://blog.youkuaiyun.com/tiankongi123/article/details/128588682?spm=1001.2014.3001.5502
代码:
import java.util.Scanner;
public class Main{
static int count=0;//定义全局变量,count表示比原来多喝count瓶
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//输入n
f(n);//调用f
System.out.println(count+n);//算总数时要count+n
}
public static void f(int n) {//计算比最初多喝几瓶
if(n>=3) {//n表示未兑换的瓶盖数
count+=n/3;//>=3时count就加n/3
f(n/3+n%3);//(递归),n/3表示上次兑换得到的瓶盖数,n%3表示上次兑换后剩的未兑换的数目
}
}
}