体育场内有n位观众,并且被标记为1到n。现在遵循这些情况-
在时间t 1,第一观众站立。
在时间t 2,第二观众站立。
…
在时间t k,第k个观众站立。
在时间t k +1,第(k +1)名观众站起来,第一个观众就座。
在时间t k + 2,第(k + 2)名观众站立,第二名观众坐下。
…
在时间t n,第n个观众站立,第(n – k)个观众坐下。
在时间t n +1,第(n +1-k)名观众就座。
…
在时间t n + k处,第n名观众就座。
因此,如果输入像n = 11,k = 6,t = 4,则输出将在时间t1处为4,第一个观众站立,然后在时间t2,第二个观众在时间t3之后站立,第三个观众站,最后在时间t4,第四名观众站。这样一来,总共有4名观众,总成绩为4。
为了解决这个问题,我们将遵循以下步骤-
如果t <= k,则
返回t
否则当t <= n时
返回k
除此以外,
res:= t-n
分辨率:= k-分辨率
返回资源
让我们看下面的实现以更好地理解-
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