前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python|制作汉堡的解题方法

Python|制作汉堡的解题方法

作者头像
算法与编程之美
发布2020-02-10 11:58:33
6830
发布2020-02-10 11:58:33
举报

问题描述

给你两个整数 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 团队

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档