香槟喷泉之谜
空杯子的水按以下顺序排列: 当您将液体倒入第一个玻璃杯中时,如果充满了液体,则多余的液体将以相同的数量流入玻璃杯2和3。当玻璃2充满时,多余的液体将流入4和5,依此类推。 给定N升的液体,每个玻璃的最大容量为1升,如果通过填写getWaterInBucket(int N, int X)X代表玻璃编号的函数倒入玻璃中来倒空N升的液体,则给出任何玻璃中存在的液体量。因此,例如,如果我想开始时有4升水,而我想在玻璃杯3中找到水,则功能为getWaterInBucket(4, 3) 如何以编程方式解决此问题?我试图使用Pascal的三角形找到数学解决方案。这没有用。我认为它是一棵树,因此我可以添加一个这样的参数getWaterInBucket(BTree root, int N, int X),然后为每个级别尝试一些递归解决方案,但是此问题中不允许使用参数。有明显的东西吗?