华为机试题2[编程题] 汽水瓶
[编程题] 汽水瓶
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空 汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满 的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以 换多少瓶汽水喝?
输入描述:
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。
输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。
输入例子:
3 10 81 0
输出例子:
1 5 40先说说思路:这道题看起来比较复杂,三瓶换一瓶,如果只剩下最后两瓶那么跟老板借一瓶喝了变成三个空瓶,最后把赠送的一瓶还给老板。但是从数学角度来说,开始count = 0;就是如果给定的数是偶数,每次减3加1相当于每次减2,count就要自加1,偶数减2计算到最后肯定是2,也就是偶数瓶汽水最后都是剩下两瓶实瓶,这样就可以借一瓶变三个空瓶,还老板一个实瓶,恰好count==偶数/2;如果开始就是奇数瓶,那么最后就剩下一瓶实瓶,一瓶实瓶不可以等价的借一瓶变成三个空瓶再还了,所以得浪费,那么问题又变成:奇数瓶-1=偶数瓶 的问题,又可以利用偶数瓶的方法解决。然而我们都知道,在java语言中除法运算是向下取整的,即3/2 = 1,因而变相的解决了奇数瓶的问题。所以这道题用了比较取巧的方法,直接瓶数除以2。
import java.util.Scanner; public class Main{public static void main(String[] args){Scanner s = new Scanner(System.in);do{int a = s.nextInt();int count = 0; if(a==0)return;else if(a == 2)System.out.println("1");else if(a==1)System.out.println("0");else{count = a/2;System.out.println(count);}}while(s.hasNext());s.close();}}
转载于:https://www.cnblogs.com/weimiaomiao/p/5769916.html
华为机试题2[编程题] 汽水瓶相关推荐
- 华为机试python编程题_牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
- 2020 华为机试 三道编程题
投的网络安全岗位,三道编程题.其实不难.... 测试用例都过了.但是.... 第一题,不太熟悉newcode输入输出,python用 for line in sys.stdin 读一行数据有问题,导致 ...
- 华为od机试题4 真题
华为od机试题 真题 58.处理所有作业总时长 53.最大停车距离 52.磁盘容量排序 51.非严格递增连续数字序列长度 50.均分糖果 48.没有相同字符的元素长度乘积的最大值 47. 相对开音节结 ...
- 华为od机试题1 真题
华为od机试题 真题 86.射击比赛成绩排序 85.计算屏幕字母数量 84.组成最大数字 82.输出字符串中最小数字 81.数字4的个数 80.整数排列 79.多条件排列 78.时间排序 以下题目附带 ...
- 华为od机试题6 真题
华为od机试题 真题 35.输出满足条件的数对 34.寻找众数中的中位数 33.分配内存 32.窗口和的最大值 31.求整数的连续自然数之和的表达式 30.矩阵的最大值 以下题目附带Java解法,是我 ...
- 华为od机试题8 真题
华为od机试题 真题 10.输出最多类型的个数 11.树根节点到最小的叶子节点的路径 12.货车最大载货量 13.太阳能板最大面积 14.单词接龙 17.输出连续出现次数第k多的字母的次数 18.喊7 ...
- 华为od机试题2 真题
华为od机试题 真题 77.满足最大消费额度 76.小朋友身高位置 75.字符连续出现最大次数 74.最少停车数 73.字母多条件排序 71. 交叉排序 70.水仙花数 69.消除相邻且相同字母 以下 ...
- 「解析」牛客网-华为机考企业真题 21-40
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...
- 牛客网华为机试题(JavaScript)
最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...
最新文章
- 【C 语言】文件操作 ( 使用 fread 和 fwrite 实现二进制文件的拷贝 | stat 统计文件大小 | feof 判定文件结尾 )
- 36招搞定电脑一切难题
- Cpp / __builtin_expect 说明
- Android Studio 运行模拟器时提示 “/dev/kvm device: permission denied”
- 为什么阿里巴巴建议集合初始化时,指定集合容量大小?
- oracle排序后第一条,Oracle排序取第一条数据
- mybatis 配置_配置Mybatis在Spring Boot工程中的整合
- 滴滴顺风车春运暂不上线;锤子员工被强制离职;苹果聘请三星高管 | 极客头条...
- auto和decltype的用法总结
- Android使用scrollview截取整个的屏幕并分享微信
- python常用命令
- 微信小程序商店:极乐小程序商店推荐之601~700
- 神经机器翻译中有用的技巧
- JAVA第一次授课心得_关于第一次java课的感想
- mysql怎么给root设密码_mysql给root设置密码
- 面试题 05.08. 绘制直线
- 【LeetCode】﹝并查集ி﹞连通分量个数(套用模板一直爽)
- 图像的超分辨率重建SRGAN与ESRGAN
- CocosCreator做摄像机跟随主角移动
- Elasticsearch 如何实现时间差查询?
热门文章
- vue遇到ie兼容问题如何处理_静电喷涂设备遇到紧急事故应该如何处理
- windows中python虚拟环境_Windows下Python虚拟环境的配置
- 在Unity3D中使用Protobuf3
- [Python+sklearn] 拆分数据集为训练和测试子集 sklearn.model_selection.train_test_split()
- 图像处理十:图像反色
- numpy与线性代数(简易版)
- 贺利坚老师汇编课程47笔记:jmp short和jmp near ptr和jmp far ptr
- PAT 1018 锤子剪刀布
- Editor GUI 的 Gamma Correction
- iOS8 获取通知设置状态