【华为机试题 HJ22】汽水瓶

题目:
        某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。
        小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。
        数据范围:输入的正整数满足  1 ≤ n  ≤ 100
        注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。

    输入例子: 3 10 81 0
    输出例子: 1 5 40
    例子说明:
    样例 1 解释:用三个空瓶换一瓶汽水,剩一个空瓶无法继续交换
    样例 2 解释:用九个空瓶换三瓶汽水,剩四个空瓶再用三个空瓶换一瓶汽水,剩两个空瓶,向老板借一个空瓶再用三个空瓶换一瓶汽水喝完得一个空瓶还给老板

解题方案一:

public static Integer getNum(Integer num){
        if (num <= 1){
            return 0;
        }
        if (num == 2){
            return 1;
        }
        int count = 0;
        while (true){
            int i = num / 3;
            count += i;
            num = i + (num % 3);
            if (num <= 1){
                break;
            }
            if (num == 2){
                count += 1;
                break;
            }
        }
        return count;
    }

上面过程复杂了,看方案二

解题方案二:

public static Integer getNum(Integer num){
        return num/2;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值