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

更新于: 2021年10月11日

103 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告