专栏首页算法与编程之美Python|制作汉堡的解题方法

Python|制作汉堡的解题方法

问题描述

给你两个整数 tomatoSlices 和 cheeseSlices,分别表示番茄片和奶酪片的数目。不同汉堡的原料搭配如下:

巨无霸汉堡:4 片番茄和 1 片奶酪

小皇堡:2 片番茄和 1 片奶酪

请你以 [total_jumbo, total_small]([巨无霸汉堡总数,小皇堡总数])的格式返回恰当的制作方案,使得剩下的番茄片 tomatoSlices 和奶酪片 cheeseSlices 的数量都是 0。

如果无法使剩下的番茄片 tomatoSlices 和奶酪片 cheeseSlices 的数量为 0,就请返回 []。

解决方案

从这道题的制作数据来看,我们应该从最小的数据开始计算,先看最多能制作小皇堡几个,得到的奶酪和番茄数据为1:2,再看剩下的番茄为多少,多啷个番茄片就可以把一个小皇堡变为一个巨无霸汉堡,由此可以计算制作汉堡的总和。

并且可以从规律可知,只要番茄片为奇数就不能使剩下的为0,则返回[]

Python代码

def make_hamburger(tomatoSlices,cheeseSlices): if tomatoSlices % 2 != 0: return [] else: if cheeseSlices * 2 <= tomatoSlices : total_jumbo = (tomatoSlices - cheeseSlices*2)/2 total_small = cheeseSlices - total_jumbo if total_jumbo * 4 + total_small*2 == tomatoSlices: return [int(total_jumbo),int(total_small)] else: return [] if __name__ == "__main__": tomatoSlices,cheeseSlices = map(int,input().split()) print(make_hamburger(tomatoSlices,cheeseSlices))

结语

总的来说还是要从数学思路来解决这道题,从最小的来计算,用剩下的来替换原有的,如果能够替换完就不剩,如果不能,那就一定不会计算成功。

END

实习编辑 | 王楠岚

责 编 | 李和龙

where2go 团队

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:李和龙

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python|对Python中函数的学习

    在python中,定义一个函数需要使用def语句,依次写出函数名,括号,括号中的参数和冒号:,接着在缩进后编写函数,函数的返回值用return语句返回。定义函数...

    算法与编程之美
  • 数据库|MySQL数据库连接与创建

    在安装好MySQL后,环境也搭建好了,接下来就是连接到数据库了。我们可以使用MySQL二进制方式连接。

    算法与编程之美
  • python|Python图片常用操作-索引与切片

    a[A:B:-X]A>B,从A到B按步长x采样,包括A。A<B,从B到A按步长x采样,不包括B.

    算法与编程之美
  • 用NBitcoin进行区块链开发(4) : 交易

    有些网站还给程序员提供更为方便的Restful的API接口,比如blockchain.info提供的查询交易信息的API接口:

    申龙斌
  • 从 JavaScript、ES6、ES7 到 ES10,你学到哪儿了?[每日前端夜话0xF8]

    什么是 JavaScript?据 Wikipedia 的描述,它是一种符合 ECMAScript 规范的脚本语言。ES6,ES7等这些名字你可能听说过,你也很可...

    疯狂的技术宅
  • 我国大陆地区的手机号正则匹配

    大数据工程师-公子
  • 我国大陆地区的手机号正则匹配

    大数据工程师-公子
  • 黑石机器人翟永辉:无人零售要注重消费场景,回归产品本身 | 镁客请讲

    镁客网
  • URL跳转(开放重定向)挖掘技巧及实战案例全汇总

    开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转url变量进行检查和控制,导致诱导用户跳转到恶意网站,由于是从可信的站...

    Jayway
  • 函数柯里化

    在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的...

    多云转晴

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动