问题描述

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