0
点赞
收藏
分享

微信扫一扫

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 团队


微信号:算法与编程之美          

Python|制作汉堡的解题方法_微信公众号

长按识别二维码关注我们!

温馨提示:点击页面发表评论,期待您的参与!期待您的转发!



举报

相关推荐

0 条评论