使用Python寻找n人排队时在前面和后面有少数人的可能位置数
假设我们有三个数字n,a和b。考虑我们排成n个人的一队。我们不知道自己在队伍中的位置,但我们知道前面至少有a个人,后面最多有b个人。我们需要找出可能的位置数量。
因此,如果输入如n = 10,a = 3,b = 4,则输出将为5,因为队列中有10人,至少有3人在前面,最多有4人在后面。因此,我们可能在任何位置[0,1,2,3,4]。当我们在位置0时,前面有9个人,后面没有人,依此类推。
要解决这个问题,我们将遵循以下步骤−
- 如果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