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