Python程序:查找n个人排成一列,且至少有a个人在前面、最多有b个人在后面的所有可能位置
假设我们有三个数字n、a和b。考虑我们在一队n个人中。我们不知道自己在队伍中的位置。但我们知道至少有a个人在我们前面,最多有b个人在我们后面。我们必须找到我们可能的位置数量。
因此,如果输入类似于n = 10 a = 3 b = 4,则输出将为5,因为队伍中有10个人,至少有3个人在前面,最多有4个人在后面。所以我们在任何位置[0, 1, 2, 3, 4]。当我们在位置0时,前面有9个人,后面有0个人,依此类推。
为了解决这个问题,我们将遵循以下步骤:
如果 a + b < n,则
返回 b + 1
如果 a + b >= n,则
返回 n - a
示例
让我们看看下面的实现以获得更好的理解
def solve(n, a, b): if a + b < n: return b + 1 if a + b >= n: return n - a n = 10 a = 3 b = 4 print(solve(n, a, b))
输入
10, 3, 4
输出
5
广告