使用 Python 查找体育场在时间 t 时站立的观众数量


体育场里有 n 个观众,他们从 1 到 n 编号。现在遵循以下情况 -

  • 在时间 t1,第一个观众站立。

  • 在时间 t2,第二个观众站立。

  • 在时间 tk,第 k 个观众站立。

  • 在时间 tk + 1,第 (k + 1) 个观众站立,第一个观众坐下。

  • 在时间 tk + 2,第 (k + 2) 个观众站立,第二个观众坐下。

  • 在时间 tn,第 n 个观众站立,第 (n – k) 个观众坐下。

  • 在时间 tn + 1,第 (n + 1 – k) 个观众坐下。

  • 在时间 tn + k,第 n 个观众坐下。

因此,如果输入类似于 n = 11,k = 6,t = 4,则输出将为 4,因为在时间 t1,第 1 个观众站立,然后在时间 t2,第 2 个观众站立,然后在时间 t3,第 3 个观众站立,最后在时间 t4,第 4 个观众站立。这样,结果是 4,因为总共有 4 个观众站立。

为了解决这个问题,我们将遵循以下步骤 -

  • 如果 t <= k,则

    • 返回 t

  • 否则,当 t <= n 时,则

    • 返回 k

  • 否则,

    • res := t - n

    • res := k - res

  • 返回 res

示例

让我们看看以下实现以更好地理解 -

 现场演示

def how_many_stand(n, k, t) :
   if (t <= k) :
      return t
   elif (t <= n) :
      return k
   else :
      res = t - n
      res = k - res
      return res
n = 11
k = 6
t = 4
print(how_many_stand(n, k, t))

输入

11, 6, 4

输出

4

更新于: 2020-08-27

50 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告