文章目录

  • 题目描述
  • 题目分析
  • java 代码
  • 结果

题目描述

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

输入描述:
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。

输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

示例
输入

3
10
81
0

输出

1
5
40

题目分析

采用递归的思想。
边界条件是 n >= 2,当 n == 2 时,能喝的瓶数加1,结束循环。

while(n >= 2){if(n == 2){// 能喝到的瓶数+1count++;// 空瓶数目清空n = 0;continue;}
}

然后是使用空瓶数进行计算
n / 3 得到能换到的瓶数,然后全都喝掉,空瓶数目要加 n / 3
n % 3 表示,一次换瓶结束之后(不喝换来的水时),剩下的空瓶。

java 代码

import java.util.Scanner;/*** Created by Feng on 2020/2/17 15:00* CurrentProject's name is java8*/
public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);while(input.hasNextInt()){// 空瓶数int n = input.nextInt();// 喝的瓶数int counts = 0;if(n <= 1000 && n >= 0){while(n >= 2){// 2 个空瓶,借一个、还一个if(n == 2){counts++;n = 0;continue;}// 能换的瓶数int tempCounts = n / 3;counts += tempCounts;// 喝完、调整空瓶数目n = tempCounts + n % 3;}}System.out.println(counts);}}
}

结果

牛客网华为机试【汽水瓶】相关推荐

  1. 牛客网华为机试(python)

    前言 牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37) 按难度分为入门,简单,中等,困难,较难五个等级 目录标题 前言 一,入门 二,简单 一, ...

  2. 牛客网--华为机试在线训练10:字符个数统计

    牛客网–华为机试在线训练10:字符个数统计 题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在A ...

  3. 牛客网–华为机试在线训练9:提取不重复的数

    牛客网–华为机试在线训练9:提取不重复的数 题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺 ...

  4. 牛客网–华为机试在线训练8:合并表记录

    牛客网–华为机试在线训练8:合并表记录 题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个 ...

  5. 牛客网–华为机试在线训练7:取近似值

    牛客网–华为机试在线训练7:取近似值 题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述: 输入一个正浮点数值 输 ...

  6. 牛客网–华为机试在线训练6:质数因子

    牛客网–华为机试在线训练6:质数因子 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接 ...

  7. 牛客网–华为机试在线训练5:进制转换

    牛客网–华为机试在线训练5:进制转换 题目描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该 ...

  8. 牛客网–华为机试在线训练4:字符串分隔

    牛客网–华为机试在线训练4:字符串分隔 题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输 ...

  9. 【To Debug】牛客网--华为机试在线训练3:明明的随机数

    牛客网–华为机试在线训练3:明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字, ...

  10. 牛客网--华为机试在线训练2:计算字符个数

    牛客网–华为机试在线训练2:计算字符个数 题目描述 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数.不区分大小写. 输入描述: 输入一个有字母 ...

最新文章

  1. Clip Studio Paint 高级着色学习教程
  2. Javascript之DOM(Document类型)
  3. ESP8266、ESP32 和 ESP32-S2 对比
  4. python rest api 测试_如何用Python编写REST API的单元测试
  5. vue移动端300毫秒延时
  6. python求加速度_如何利用Python 为自然语言处理加速度
  7. mcq 队列_MCQ | 8086微处理器中的寻址模式
  8. 【Python】处理 pydotplus.graphviz.InvocationException: GraphViz’s executables not found
  9. docker镜像没有ifconfig、ping指令
  10. Http Simulate
  11. java案例2-6:登录注册
  12. python3数据库框架_python3大框架简介 小收藏
  13. golang中的map
  14. 平板有必要买触控笔吗?好用又便宜的触控笔推荐
  15. 数据的写出(FileWriter)
  16. 华为云首批通过可信区块链评测
  17. aria2-linux
  18. R5S RK3568运行安卓12搭配即插即用免驱免拨号的4G LTE模组测速演示
  19. 【eos系列】账户 钱包 私链搭建
  20. 周口科技学院计算机怎么样,周口科技学院具体怎么样?在网上看了很多,期盼能有个学长据实介...

热门文章

  1. 安装mathtype时找不到文件mathpage.wil
  2. 券商创设认购权证分析
  3. 历史课堂上的经典对白
  4. level升级打怪是什么意思_蛮荒神途——资深玩家谈论为什么不喜欢组队原因
  5. 东辉创投放心用姓名存钱的利害,存款一切权归吗?
  6. “测不准原理”在计算机领域的体现
  7. 邮件服务器怎么使用,Winmail Mail Server邮件服务器软件怎么使用
  8. ubuntu12.04 飞鸽传书安装
  9. 计算机专业大学排名 来看你的学校排第几,华盛顿州大学计算机专业排名 你的学校排第几...
  10. 数据库简介与 Mysql 服务基础