A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© God’s favoure 中级黑马   /  2014-10-24 21:17  /  3484 人查看  /  32 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

package day07;
import java.util.*;
/*28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,
*                 那么要买多少瓶可乐,够28人喝?假如是50人,
*                 又需要买多少瓶可乐?(需写出分析思路)*/
//每当瓶子数等于3的时候,那么,就可以得到一个瓶  a/3
public class Test10{
        public static void main(String[] age){
                System.out.println("请输入需要喝可乐的人数:");
                Scanner sc = new Scanner(System.in);
                int man = sc.nextInt();
                Integer drinked = 0;//为饮料赋初始值0
                Integer caps = 0;//为瓶盖赋初始值0
                Integer need = 0;//为需要多少瓶赋值
                while (drinked < man) {
                        need++;
                        drinked++;
                        caps++;
                        if (caps == 3) {
                                drinked++;
                                caps = 1;
                        }
                }
                System.out.println(need);
        }
}
这段代码我看了以后,真的有种感动,太纯粹,当我都在苦苦的思考各种算法得时候,看到了这段,只是很简单的按照题目基本上是描述出来的代码的时候,大家能体会到我的震惊甚至带有一些感动么?

评分

参与人数 2技术分 +2 收起 理由
杨佳名 + 1 赞一个!
敏敏好学 + 1 赞一个!

查看全部评分

32 个回复

倒序浏览
哈哈,这也算是编程的乐趣所在,那种豁然开朗的感觉,,,无法形容{:3_53:}
回复 使用道具 举报
恩,不错。
回复 使用道具 举报
n/3*2+n%3   这段代码就是一道数学题,一行就搞定。n代表总人数
回复 使用道具 举报
震惊了,这.........无法形容
回复 使用道具 举报
真是犀利
回复 使用道具 举报
酷爆了这算法{:3_55:}
回复 使用道具 举报
冥夜 中级黑马 2014-10-25 01:02:21
8#
陈云阳 发表于 2014-10-24 22:06
n/3*2+n%3   这段代码就是一道数学题,一行就搞定。n代表总人数

是数学题,但是解决问题的思路不一样,就好像枚举和推理都能得出结论。对于人来说,在复杂到一定程度上推理更快,但是对于计算机来说计算机有极快的运行速度,所以反而枚举法更快,在计算机用枚举法找到答案的时候人可能还在纠结着思路的正确与否。
回复 使用道具 举报
郑飞 高级黑马 2014-10-25 05:17:17
9#
陈云阳 发表于 2014-10-24 22:06
n/3*2+n%3   这段代码就是一道数学题,一行就搞定。n代表总人数

不一样 楼主发的代码 大妈都能看懂 却解决了问题
回复 使用道具 举报
感谢楼主分享
回复 使用道具 举报
有些代码就是在你百思不得其解的时候眼前一亮
回复 使用道具 举报
陈云阳 发表于 2014-10-24 22:06
n/3*2+n%3   这段代码就是一道数学题,一行就搞定。n代表总人数

你这个也并不完全对,如果是3的倍数下这个就不适合,此时瓶数要加1
回复 使用道具 举报
看看。。。。。。。。
回复 使用道具 举报
lylHAHA 来自手机 中级黑马 2014-10-25 09:03:15
14#
之前也看过这道题,找了些规律,看分享的,感觉简单多了,
回复 使用道具 举报
感谢楼主分享 ~~学习了
回复 使用道具 举报
陈行 高级黑马 2014-10-25 10:20:04
16#
个人感觉这种问题  用递归思路比较清晰把
回复 使用道具 举报
君行 中级黑马 2014-10-25 10:26:56
17#
.................
回复 使用道具 举报
郑飞 发表于 2014-10-25 05:17
不一样 楼主发的代码 大妈都能看懂 却解决了问题

楼主只是加了注释,我这算法的思路也很简单 , 买两瓶饮料,就有两个瓶盖,然后再向老板借一个瓶盖,换一瓶饮料,喝完把盖子还给老板就好。   所以每三人为一个小组 只需买两瓶饮料,不足三人的按人头买饮料,n/3*2 就是算出全部的3人小组需要买多少瓶水 ,n%3,就是算出,不足3人的 零散人头数,   相加就得出最少的饮料瓶数
回复 使用道具 举报
郑飞 高级黑马 2014-10-25 22:30:31
19#
陈云阳 发表于 2014-10-25 22:20
楼主只是加了注释,我这算法的思路也很简单 , 买两瓶饮料,就有两个瓶盖,然后再向老板借一个瓶盖,换一 ...

这么一说是很清晰 当时做题的时候就没想到用表达式 学习了
回复 使用道具 举报
这个必须赞一个。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马