目录
题目
代码
AC结果
思路:
一、获取数据
二、计数
题目
1216. 饮料换购 - AcWing题库https://www.acwing.com/problem/content/description/1218/
代码
import java.util.Scanner;public class Main {public static void main(String[] args){//获取数据Scanner input = new Scanner(System.in);int initial = input.nextInt();//计算int ans = initial;int temp = initial;while(temp >= 3){int add = (temp / 3);ans += add;int remainder = temp % 3;temp = (temp / 3) + remainder;}System.out.println(ans);}
}
AC结果
思路:
按题目要求获取初始饮料数量。然后饮料熟练除3,商表示换购的数量,而余数表示尚未用于兑换的瓶盖。将商记录到【已喝】的数量上,然后第一次换购的饮料数加上未换购的瓶盖数等于下一轮用于兑换的总瓶盖数。然后每一轮都按照上述操作,将每一轮可以喝的数量累加到一起。
一、获取数据
//获取数据Scanner input = new Scanner(System.in);int initial = input.nextInt();
initial表示初始购买的饮料数。
二、计数
//计算int ans = initial;int temp = initial;while(temp >= 3){int add = (temp / 3);ans += add;int remainder = temp % 3;temp = (temp / 3) + remainder;}System.out.println(ans);
ans表示最后可以喝的饮料数,初始值为初始买入的饮料数量。temp表示每一轮可用于兑换饮料的总瓶盖数。当总瓶盖数大于3即仍然还能兑换饮料。add表示每一轮新增的可喝的饮料数,remainder表示每一轮未能用于兑换的瓶盖数(按题意“不浪费瓶盖”,这些瓶盖将加到下一轮总瓶盖数中)。