牛客网华为机试【汽水瓶】
文章目录
- 题目描述
- 题目分析
- 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);}}
}
结果
牛客网华为机试【汽水瓶】相关推荐
- 牛客网华为机试(python)
前言 牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37) 按难度分为入门,简单,中等,困难,较难五个等级 目录标题 前言 一,入门 二,简单 一, ...
- 牛客网--华为机试在线训练10:字符个数统计
牛客网–华为机试在线训练10:字符个数统计 题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在A ...
- 牛客网–华为机试在线训练9:提取不重复的数
牛客网–华为机试在线训练9:提取不重复的数 题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺 ...
- 牛客网–华为机试在线训练8:合并表记录
牛客网–华为机试在线训练8:合并表记录 题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个 ...
- 牛客网–华为机试在线训练7:取近似值
牛客网–华为机试在线训练7:取近似值 题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述: 输入一个正浮点数值 输 ...
- 牛客网–华为机试在线训练6:质数因子
牛客网–华为机试在线训练6:质数因子 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接 ...
- 牛客网–华为机试在线训练5:进制转换
牛客网–华为机试在线训练5:进制转换 题目描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该 ...
- 牛客网–华为机试在线训练4:字符串分隔
牛客网–华为机试在线训练4:字符串分隔 题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输 ...
- 【To Debug】牛客网--华为机试在线训练3:明明的随机数
牛客网–华为机试在线训练3:明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字, ...
- 牛客网--华为机试在线训练2:计算字符个数
牛客网–华为机试在线训练2:计算字符个数 题目描述 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数.不区分大小写. 输入描述: 输入一个有字母 ...
最新文章
- YOLOV5的多主干网络backbone实现(Mobilenetv3Small、EagleEye、EfficientNetLite-0、PP-LCNet-1x、SwinTrans-YOLOv5等)
- 双一流高校通知「19级硕士秋季学期不开学!」决定引热议,你怎么看?
- 【计算理论】Pumping 引理 ( 四个等价概念 | 自动机界限 | Pumping 引理简介 | Pumping 引理证明正则表达式 | Pumping 引理示例分析 )
- a 中调用js的几种方法整理及使用推荐
- cron 每小时_旺季招聘:高薪小时工!
- android 卡片3d效果_小米发布伸缩镜头技术:卡片机失业,多摄下岗?
- 实现远程调用_远程过程调用(RPC)是怎么实现的?
- MySql的连接查询
- [html] HTML5的触屏事件有哪些?
- 不同浏览器对回车提交表单的处理办法(转载)
- vs debug 调试 快捷键
- 常见数据类型的手机二维码生成与识别格式参考
- 50句英语成语:字面和实际意思大不同
- 如何使用ps的扭曲里面的旋转扭曲
- 欧几里得算法和扩展欧几里得
- 极验第四代滑块验证码破解(四):请求分析及加密参数破解
- rockchip研讨会_地下在线研讨会6
- (附源码)springboot 在线考试系统 毕业设计461317
- python按回车_python中回车键
- 《HeadFirst设计模式》读书笔记-第9章v1-迭代器模式
热门文章
- 二极管三极管基础PN结详解
- Element 单元格合计(多行合计、合计列合并)
- 从零开始搭建创业公司全新技术栈
- 鸿蒙os商用版,鸿蒙OS再次官宣最快今年9月商用,可以一夜之间代替安卓系统
- Salesforce市值3000亿美元,中国CRM企业能复制成功吗?
- 基于Inception v2实现判别mnist手写数据集
- python视觉识别字_Python通过Tesseract库实现文字识别
- 服务过美国总统竞选的非传统投票UI [解析及DEMO]
- 网络招聘巨头亏损引模式之辩
- notepad++使用NppExec插件找不到或无法加载主类(java)