登陆注册
37240300000026

第26章 自动售货机

“我的要求很简单,就是能喝上一罐82年份的雪碧”,杨成坏坏地笑了。

“好,满足你”,系统声音刚落,杨成就出现在了一个自动售货机前面。

漆黑的夜晚,明亮的路灯下面,自动售货机散发出微蓝色的光芒,里面一排排的货架盛放着一瓶瓶饮料。

杨成掏出几个硬币,先选中了雪碧下面的按钮,然后把硬币塞进投币口。

估摸着过了好几秒钟,从出货口并没有滚出来饮料,相反一个便笺飘落了下来。

借着微弱的灯光,杨成拿起便笺一看,上面写着几行小字。

“为自动售货机编写业务逻辑,已知规则如下:”

“1.售货机接收N种纸币或硬币,其中包括1元,5元,10元....”

“2.售货机最开始拥有各种类型钱币的数量都是一定的”。

“3.如果投入的钱币低于商品的价值,那么将钱币原封不动地退回”。

“4.如果投入的钱币等于商品的价值,那么无须找零”。

“5.如果投入了售货机不支持的钱币类型,原路返回无效的钱币”。

“6.如果要找零,尽可能从大额的纸币开始,比方说,要找25块钱,退回的结果是1张20块和1张5块,而不是2张10块的和1张5块”。

“7.如果售货机已有的钱币无法全额找零,那么尽可能接近地找零,但售货机是不能吃亏的!”

“这是个背包问题啊”,杨成挠了挠头。

最后一条描述说明了问题的性质。

背包问题可以描述为:给定一组物品,每种物品都有自己的价格,在限定的总价值内,我们如何选择,才能使得物品的总价格最高。

对于这一类问题,最好最高效的方法是动态规划求解,但使用递归蛮力求解,在小数据范围内也是可以的。

假如售货机内已有1元钱币3个,5元钱币5个,20元钱币1个。

我要购买3元的雪碧一瓶,并投进去了一张20元纸币,那么我得找零17元。

先看能用于找零的有什么样的钱币,20元的肯定排除,因为它大于17,售货机可不干亏本买卖!

然后,我们看3个1元钱币和5个5元钱币能不能产生找零17元的结果?

答案是肯定的,3个5元钱币和2个1元钱币就能够组成17。

这就是递归匹配的过程,不过具体实现上面,很多地方可以优化,用来提高效率。

“真的是好麻烦啊”,杨成擦了一把汗,在路灯的照耀下挥汗如雨。

早知道喝瓶雪碧解解渴这样的简单要求居然要先写个多小时的代码,还不如把自己送到海南喝点纯正的椰子汁。

“哟西,终于搞定了”,杨成不愧是有毅力的程序员。

“叮!恭喜您完成了自动售货机的相关任务!”

“当前积分55分,击败了全球27%的玩家,请您再接再厉!”

“咕噜噜”,从自动售货机的出货口滚落下来一瓶冰镇的雪碧,还有一张小小的便笺。

便笺上面写着一行娟秀的字迹——“请慢用^_^”

同类推荐
  • 末世之称霸

    末世之称霸

    末日来临,地球上的人类几乎灭绝,但依旧有那么一小部分存活下来。他们每天为了生存不断与怪物厮杀,不断进化,这样才能有更多的保命机会。李扬,一个冷血的杀手,被组织出卖,被当作实验品,自由后发现自己的杀人技能更加强大,并获得了一些特殊的能力。而这些帮助他在末日里更好的活下去。
  • 超越光速

    超越光速

    当末日来临之际,别无选择,失业大学生扛起重任,前往外星抗击外敌。
  • 末日幻神

    末日幻神

    T-病毒带来的不仅仅是毁灭,还有……使生物链整体计划的机遇。第一阶基因锁是激发人体内的原因子,可能会产生异能,可能会产生超体,也可能……金泉咆哮:你妹啊!这袋盐怎么在我手上!摔!八个作死的年轻人跑到废弃的工厂,玩真人CS,无意中放出了暗组织在YC市的一些进化失败的人……
  • 魔法师也要搞科研

    魔法师也要搞科研

    前往土卫六殖民的科学家埃尔温,因为意外穿越到了一个魔法世界中。作为一个热爱科学的研究者,埃尔温来到异界后也不忘他的老本行,于是在魔法世界展开了一系列科学“实验”:用装甲部队碾压亡灵大军,用战舰巨炮调教山地巨人,用隐形战机测量天使翼展;用死光炮烧烤恶魔,用机动战士屠龙,用星舰弑神!埋藏于诅咒之地的迷宫宝藏?让自动机器人取出来绝对没问题;能使人获得永生的神水?取个样本分析一下;不吃不喝都能维持活动的僵尸亡灵,关进笼子里做永动机也不错;来自深渊的女吸血鬼和雌性恶魔,正好抓进实验(后)室(宫)做研究材料……
  • 超级机神

    超级机神

    从小就开始流浪的陈雾,偶然间一次机遇,他得到了进入人类基地市的机会。一直以来默默吸收着各种知识,拥有着一张惨白的死人脸和一手精湛的维修技术的陈雾开始在蓝蔚星的南方开启了自己新的人生。野兽般的求生本能,光脑般冷静的头脑,非同常人一般的坚韧,让他在人类社会中慢慢地如鱼得水,每一次的不经意出手,都是那样的惊才绝艳,引人震撼!冷酷与茫然,热血与激情,陈雾用他那令世人惊艳的表现缔造了浩瀚星空中的一段永恒传说!
热门推荐
  • 腹黑皇上:贱臣有本要奏

    腹黑皇上:贱臣有本要奏

    一朝穿越蓝钰初万万没有想到这正是她苦逼新生活的开始。要说为何……一场乱斗,自家老哥离奇失踪,无奈之下顶着男装来上阵!冒着欺君之罪、杀头之险可能还会株连九族!也势要把他送上那君王之位。可那位总是不在状态的太子又是肿么回事?“装疯卖傻”又是闹哪样?“小映子,咱们去逛花楼。”“小映子,陪爷下棋。”“小映子…………”听到这太监般的称呼,蓝钰初心中仿佛有万只草泥马奔腾而过。直到轩辕洛辰坐上龙椅后对她说的第一句话是,“小映子,朕要你做朕的后!!!”蓝钰初则,石化。
  • 虐心轮回记

    虐心轮回记

    谭千忆(戴雨溪),仅仅十二岁,作为轮回点,完成一次又一次的历练,最终还是踏上了不归之路,一次又一次……可显然,拥有着所有前世记忆的谭千忆(戴雨溪)不是普通的转世仙人,明明很普通的身份却也有些不合理,她真的是人吗?然而知道了身份,却牵扯到了血族、仙族、魔族和人族。
  • 帝国第一宠:娇妻,有喜了!

    帝国第一宠:娇妻,有喜了!

    她,从小就家破人亡。他,从小家财万贯。两人本无交集,似生命中的平行线,却因一场暴雨,成了相交线。她自幼被带入君家参加杀手训练!万年铁血红玫瑰竟是她。他自幼高冷优雅,心思细腻,身手更是以一当十!他的灵魂上印着太阳之印。长大后,她成了他的手下,也成了他此生最重要的人。“苏浮瑾,我不允许你受伤!听懂了吗!”“是!主人。”男人目光中透露出一股寒气,强调道:“是老公!”旁边的杀手都起哄笑了起来
  • 阳光不暖人心

    阳光不暖人心

    对她来说梦想是她唯一坚持的理由了吧!那个他闯入她的世界,王子和灰姑娘的故事只会在童话里出现吧,她认为就算自己是灰姑娘那王子也不出现。童话终究是童话。而她也并不期待王子。已开始写新著作《倾城时光不太暖》,相信很快就能见面了。希望大家捧捧场欧?
  • 健康预警与疾病信号

    健康预警与疾病信号

    应对健康危机,最好的方式,就是管好自己、趋利避害,同时能够及早地知晓健康预警和疾病信号,从而做到对疾病的早诊断、早治疗,将隐患消灭在萌芽阶段,以保障身心的健康。正是基于这种理念,本书精选汇集了相关资料,全方位介绍了人体从内到外,从上到下各个部位的异常表现。俗话说:“一叶落而知天下秋”“础润而雨,月晕而风”——使人们可以通过自身细微的变化,由此及彼、由表及里地了解健康的状况和走向,以防微杜渐,益寿延年。
  • 末日废星

    末日废星

    地球——孕育人类的母星。如今已是狂尸遍地的废星,成了人类测试星际武器的试验场。一本日记,让身为学生覃俊发现这一切绝非偶然。
  • 一帘幽冥

    一帘幽冥

    懵懂少女,迤逦行来,遭遇神鬼之事,神往揽月之颠。携友情沉淀如酒,怜爱情绽放为花;看亲情变幻成月,叹世情沧桑变化。幽幽情缘,冥冥注定!
  • 上古世纪之梦想起航

    上古世纪之梦想起航

    《上古世纪》年度最具想象力游戏,全球首款第三代RPG游戏,百分百纯真模拟,号称人类“第二世界”。这里存在最玄幻的想象,这里拥有最科幻的画面,这里具备火热的激情,只要你敢来,只要你敢想,没有什么不可以!《上古世纪》,放飞梦想,邀您共创新世界!
  • 卿本风华之美人无双

    卿本风华之美人无双

    他是高高在上冷酷无情的南国帝王慕容毅。她却是倾国倾城不受宠的北国丞相幺女苏卿。她莫名其妙的得知自己的身世,从苏家庶女变成北国公主。命运弄人,为了两国百姓免受战乱。她舍弃心爱之人远嫁南国。她的宿命如何,请关注《卿本风华之美人无双》
  • 残阳之城

    残阳之城

    主要讲述一个背负无穷罪恶,却渴望得到救赎的少年的故事,以及他无数的征战:征服和毁灭,他主导下的秩序重建。少年的身上有着无数世界的血仇,他的灵魂是黑暗的,他最初根本没有意识到。最终,冷酷的面容下,也是一颗同样冷酷的心。他的每一滴血都充满罪恶,他是矛盾的集合。他非常冷静,他疯狂。他和天使为伴,同魔鬼嬉笑。他爱这世界,更恨这世界。他明白道理:如果你的改变也无法融入这个世界,说明这个世界不能让你改变,那么你就改变世界吧。