AcWing1216.饮料换购——学习笔记

该文章展示了一个Java程序,用于解决AcWing题库中的饮料换购问题。程序通过Scanner获取初始饮料数量,然后使用循环和数学运算计算可以喝到的总饮料数,确保不浪费任何瓶盖。在每次循环中,它计算出可以兑换的饮料数量并更新剩余瓶盖,直到无法再兑换为止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

题目

代码

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表示每一轮未能用于兑换的瓶盖数(按题意“不浪费瓶盖”,这些瓶盖将加到下一轮总瓶盖数中)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hokachi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值