[编程题] 汽水瓶

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空 汽水瓶,她最多可以换多少瓶汽水喝?”答案是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[编程题] 汽水瓶相关推荐

  1. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

  2. 2020 华为机试 三道编程题

    投的网络安全岗位,三道编程题.其实不难.... 测试用例都过了.但是.... 第一题,不太熟悉newcode输入输出,python用 for line in sys.stdin 读一行数据有问题,导致 ...

  3. 华为od机试题4 真题

    华为od机试题 真题 58.处理所有作业总时长 53.最大停车距离 52.磁盘容量排序 51.非严格递增连续数字序列长度 50.均分糖果 48.没有相同字符的元素长度乘积的最大值 47. 相对开音节结 ...

  4. 华为od机试题1 真题

    华为od机试题 真题 86.射击比赛成绩排序 85.计算屏幕字母数量 84.组成最大数字 82.输出字符串中最小数字 81.数字4的个数 80.整数排列 79.多条件排列 78.时间排序 以下题目附带 ...

  5. 华为od机试题6 真题

    华为od机试题 真题 35.输出满足条件的数对 34.寻找众数中的中位数 33.分配内存 32.窗口和的最大值 31.求整数的连续自然数之和的表达式 30.矩阵的最大值 以下题目附带Java解法,是我 ...

  6. 华为od机试题8 真题

    华为od机试题 真题 10.输出最多类型的个数 11.树根节点到最小的叶子节点的路径 12.货车最大载货量 13.太阳能板最大面积 14.单词接龙 17.输出连续出现次数第k多的字母的次数 18.喊7 ...

  7. 华为od机试题2 真题

    华为od机试题 真题 77.满足最大消费额度 76.小朋友身高位置 75.字符连续出现最大次数 74.最少停车数 73.字母多条件排序 71. 交叉排序 70.水仙花数 69.消除相邻且相同字母 以下 ...

  8. 「解析」牛客网-华为机考企业真题 21-40

    又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...

  9. 牛客网华为机试题(JavaScript)

    最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...

最新文章

  1. 【C 语言】文件操作 ( 使用 fread 和 fwrite 实现二进制文件的拷贝 | stat 统计文件大小 | feof 判定文件结尾 )
  2. 36招搞定电脑一切难题
  3. Cpp / __builtin_expect 说明
  4. Android Studio 运行模拟器时提示 “/dev/kvm device: permission denied”
  5. 为什么阿里巴巴建议集合初始化时,指定集合容量大小?
  6. oracle排序后第一条,Oracle排序取第一条数据
  7. mybatis 配置_配置Mybatis在Spring Boot工程中的整合
  8. 滴滴顺风车春运暂不上线;锤子员工被强制离职;苹果聘请三星高管 | 极客头条...
  9. auto和decltype的用法总结
  10. Android使用scrollview截取整个的屏幕并分享微信
  11. python常用命令
  12. 微信小程序商店:极乐小程序商店推荐之601~700
  13. 神经机器翻译中有用的技巧
  14. JAVA第一次授课心得_关于第一次java课的感想
  15. mysql怎么给root设密码_mysql给root设置密码
  16. 面试题 05.08. 绘制直线
  17. 【LeetCode】﹝并查集ி﹞连通分量个数(套用模板一直爽)
  18. 图像的超分辨率重建SRGAN与ESRGAN
  19. CocosCreator做摄像机跟随主角移动
  20. Elasticsearch 如何实现时间差查询?

热门文章

  1. vue遇到ie兼容问题如何处理_静电喷涂设备遇到紧急事故应该如何处理
  2. windows中python虚拟环境_Windows下Python虚拟环境的配置
  3. 在Unity3D中使用Protobuf3
  4. [Python+sklearn] 拆分数据集为训练和测试子集 sklearn.model_selection.train_test_split()
  5. 图像处理十:图像反色
  6. numpy与线性代数(简易版)
  7. 贺利坚老师汇编课程47笔记:jmp short和jmp near ptr和jmp far ptr
  8. PAT 1018 锤子剪刀布
  9. Editor GUI 的 Gamma Correction
  10. iOS8 获取通知设置状态