题解 | #汽水瓶#

汽水瓶

https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f

方法一:模拟

import java.io.*;
import java.util.*;

public class Main {
    public static void  main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);

        String str = null;
        while ((str = br.readLine()) != null) {
            int n = Integer.parseInt(str);
            if (n == 0) {
                break;
            }
            pw.println(sodaBottle(n));
        }

        pw.flush();
        pw.close();
        br.close();
    }

    private static int sodaBottle(int n) {
        int ans = 0;
        while (n > 1) {
            ans += n / 3;
            n = n / 3 + n % 3;
            if (n == 2) {
                n = 3;
            }
        }
        return ans;
    }
}

方法二:数学

某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。

如果有两个瓶子,则可以借一个瓶子,这样就有 3 个瓶子,可以换一瓶汽水,喝完后还一个瓶子。

等价于 两个瓶子换一瓶汽水。

即答案为 n / 2

全部评论

相关推荐

03-03 19:08
已编辑
电子科技大学 C++
虚闻松声:简历还是不错。 说两点 1. 正确书写专有名词。如MySQL、Python等。 2. 清晰展示项目内容。最好以列表形式分大的模块展示。 建议就是,1. 刷完 hot100 2. 适当结合AI CV、求职等咨询,欢迎私信交流。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务