题解 | #汽水瓶#

汽水瓶

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] input =new int[10];
        int tmp =0;
        for(int i =0;i<10;i++){
            tmp=in.nextInt();
            if(tmp==0){
                break;
            }
            input[i] = tmp;
        }
        for(int i =0;i<10;i++){
            if(input[i]!=0){
                System.out.println(input[i]/2);
            }
        }
    }
}

先上代码。这个问题的题目很长,但是只分2种情况:

  1. 满3空瓶→换1瓶喝掉→少2个瓶子;满2空瓶→借1瓶喝掉→换1瓶返还→少2个瓶子。
  2. 只有1个瓶子,不能换,也不能借着换。
    所以问题其实很简单,只需整除2便可得知有几次少了2个瓶子,也就是喝了几瓶。
    结合要求,输入<10个整数,输入0时代表停止输入,那么0就是终止输入和计算输出的边界条件。
    代码如上。
全部评论
这么写不全对,当n=6的时候,只能换2瓶,剩下2个空瓶子无法兑换,不可以借,能过说明测试用例不对
点赞
送花
回复
分享
发布于 2022-03-28 19:24
请问为什么要用int tmp =0; 不可以直接input[i]=in.nextInt();吗? 不可以直接判断 if(input[i]==0)吗?
点赞
送花
回复
分享
发布于 2022-04-19 21:18
滴滴
校招火热招聘中
官网直投

相关推荐

25 收藏 评论
分享
牛客网
牛客企业服务